REST Book: References
I just finalized the list of references for my book on REST (in case you don't know it: the first version is written in German and due to be available in July; I'm currently talking to a few US publishers, too) – and I thought I might just as well post it here. Interestingly, you can make a very good guess at the outline from this list …
- Fielding, Roy Thomas: Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000, http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- RFC 2616: Hypertext Transfer Protocol – HTTP/1.1, http://www.ietf.org/rfc/rfc2616.txt
- Vinoski, Steve: Serendipitous Reuse, IEEE Internet Computing, http://computer.org/portal/pages/dsonline/2008/02/w1tow.xml
- Megginson, David: „With REST, every piece of information has its own URL.“; http://www.megginson.com/blogs/quoderat/2007/02/15/rest-the-quick-pitch/
- Carlyle, Benjamin: REST Rewiring, http://soundadvice.id.au/blog/2008/04/18/
- RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, http://www.ietf.org/rfc/rfc3986.txt
- Bray, Tim: The Universal Republic of Love, http://www.tbray.org/ongoing/When/200x/2003/02/27/URL
- Yahoo! API Documentation, „Retrieving Partial Resources“, http://developer.yahoo.com/social/rest_api_guide/partial-resources.html#paging-collection
- URI Templates, http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.html
- Nielsen, Jakob:URL as UI, http://www.useit.com/alertbox/990321.html
- RFC 893: Transmission Control Protocol, http://www.ietf.org/rfc/rfc0793.txt
- Ambler, Scott: Choosing a Primary Key: Natural or Surrogate?, http://www.agiledata.org/essays/keys.html
- Squid, http://www.squid-cache.org/
- Baker, Mark: Accidentally RESTful, http://www.markbaker.ca/blog/2005/04/accidentally-restful/
- Berners-Lee, Tim: Cool URIs don't change, http://www.w3.org/Provider/Style/URI
- Google Web Accelerator, http://webaccelerator.google.com/
- Fried, Jason: Google Web Accelerator: Hey, not so fast, http://tinyurl.com/asntk
- Fielding, Roy T.:, http://tech.groups.yahoo.com/group/rest-discuss/message/442?var=0
- HTML 5: A vocabulary and associated APIs for HTML and XHTML, http://dev.w3.org/html5/spec/Overview.html
- Ajax, Wikipedia-Definition: http://en.wikipedia.org/wiki/Ajax_(programming)
- JQuery: The Write Less, Do More JavaScript Library, http://jquery.com/
- Prototype JavaScript framework: Easy Ajax and DOM manipulation for dynamic web applications, http://www.prototypejs.org/
- Google Data APIs (GData), http://code.google.com/apis/gdata/
- RFC 3864: Registration Procedures for Message Header Fields, http://www.ietf.org/rfc/rfc3864.txt
- WebDAV, http://www.webdav.org/
- RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning, http://www.webdav.org/specs/rfc4918.html
- RFC 3253: Versioning Extensions to WebDAV, http://www.webdav.org/specs/rfc3253.html
- PATCH Method for HTTP, http://tools.ietf.org/id/draft-dusseault-http-patch-11.txt
- Sayre, Robert: Simple Synchronization Method for JSON Objects, https://bugzilla.mozilla.org/attachment.cgi?id=269420
- Nottingham, Mark: Link Relations and HTTP Header Linking, Internet Draft, http://tools.ietf.org/id/draft-nottingham-http-link-header-03.txt
- Fielding, Roy T.: „REST APIs must be hypertext-driven“, http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
- RFC 2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, http://www.ietf.org/rfc/rfc2046.txt
- Associating Resources with Namespaces, W3C TAG Finding, http://www.w3.org/2001/tag/doc/nsDocuments/
- RFC 3023: XML Media Types, http://www.ietf.org/rfc/rfc3023.txt
- IANA MIME Media Types, http://www.iana.org/assignments/media-types/
- RFC 4288: Media Type Specifications and Registration Procedures, http://www.ietf.org/rfc/rfc4288.txt
- UBL (Universal Business Language) V2.0, http://docs.oasis-open.org/ubl/os-UBL-2.0/UBL-2.0.html
- HTML 4.01 Specification, http://www.w3.org/TR/html401/
- XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition), http://www.w3.org/TR/xhtml1/
- Pilgrim, Mark: The Road to XHTML 2.0: MIME Types, http://www.xml.com/pub/a/2003/03/19/dive-into-xml.html
- RFC 5147: URI Fragment Identifiers for the text/plain Media Type, http://www.ietf.org/rfc/rfc5147.txt
- RFC 2483: URI Resolution Services Necessary for URN Resolution, http://www.ietf.org/rfc/rfc2483.txt
- RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files, http://www.ietf.org/rfc/rfc4180.txt
- JSON (JavaScript Object Notation), http://json.org/
- RFC 4627: The application/json Media Type for JavaScript Object Notation (JSON) http://www.ietf.org/rfc/rfc4627.txt
- RSS 2.0 Specification, http://cyber.law.harvard.edu/rss/rss.html
- RFC 4287: The Atom Syndication Format, http://www.ietf.org/rfc/rfc4287.txt
- RFC 5005: Feed Paging and Archiving, http://www.ietf.org/rfc/rfc5005.txt
- RFC 4685: Atom Threading Extensions, http://www.ietf.org/rfc/rfc4685.txt
- Microformats-Community, http://microformats.org/
- Resource Description Framework (RDF): http://www.w3.org/RDF/
- Beckett, David: Turtle – Terse RDF Triple Language, http://www.dajobe.org/2004/01/turtle/
- Dublin Core Metadata Element Set, Version 1.1, http://dublincore.org/documents/dces/
- RDF Vocabulary Description Language 1.0: RDF Schema, http://www.w3.org/TR/rdf-schema/
- OWL Web Ontology Language, http://www.w3.org/TR/owl-ref/
- Allemang, Dean; Hendler, James A.: Semantic Web for the Working Ontologist: Effective Modeling in RDFS and OWL, Morgan/Kaufman, 2008
- Pilgrim, Mark: Should Atom Use RDF?, http://www.xml.com/pub/a/2003/08/20/dive.html
- Mazzocchi, Stefano: A No-Nonsense Guide to Semantic Web Specs for XML People, http://www.betaversion.org/~stefano/linotype/news/57/
- RFC 5023: The Atom Publishing Protocol, http://www.ietf.org/rfc/rfc5023.txt
- Pilgrim, Mark: The myth of RSS compatibility, http://diveintomark.org/archives/2004/02/04/incompatible-rss
- Tomoyako, Ryan: Things Caches Do, http://tomayko.com/writings/things-caches-do
- Nothingham, Mark: The State of Proxy Caching, http://www.mnot.net/blog/2007/06/20/proxy_caching
- Nottingham, Mark: The State of Browser Caching, http://www.mnot.net/blog/2006/05/11/browser_caching
- Nottingham, Mark: Caching Tutorial for Web Authors and Webmasters, http://www.mnot.net/cache_docs/
- RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2, http://tools.ietf.org/rfc/rfc5246
- Google APIs: Authentication for Installed Applications, http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html
- RFC 2617: HTTP Authentication: Basic and Digest Access Authentication, http://www.ietf.org/rfc/rfc2617.txt
- RFC 2104: HMAC: Keyed-Hashing for Message Authentication, http://www.ietf.org/rfc/rfc2104.txt
- Amazon S3 REST Authentication, http://docs.amazonwebservices.com/AmazonS3/2006-03-01/index.html?RESTAuthentication.html
- Google: How to use Post-Commit Web Hooks for your project, http://code.google.com/p/support/wiki/PostCommitWebHooks
- OpenID Authentication 2.0, http://openid.net/specs/openid-authentication-2_0.html
- RFC 2631: Diffie-Hellman Key Agreement Method, http://tools.ietf.org/rfc/rfc2631
- OAuth Core 1.0, http://oauth.net/core/1.0/
- Hammer-Lahav, Eran: Beginner’s Guide to OAuth, http://www.hueniverse.com/hueniverse/2007/10/beginners-guide.html
- mod_authz_ldap: An Apache LDAP Authorization module, http://authzldap.othello.ch/
- Clark, James: HTTP: what to sign?, http://blog.jclark.com/2007/10/http-what-to-sign.html
- XML Encryption Syntax and Processing, http://www.w3.org/TR/2002/REC-xmlenc-core-20021210
- XML-Signature and Syntax Processing, http://www.w3.org/TR/2002/REC-xmldsig-core-20020212
- Google Data APIs Authentication Overview, http://code.google.com/apis/gdata/auth.html
- WSDL 1.1, W3C Note, http://www.w3.org/TR/wsdl
- WSDL 2.0, W3C Recommendation, http://www.w3.org/TR/wsdl20/
- WADL (Web Application Description Language), https://wadl.dev.java.net/
- Resource Directory Description Language (RDDL), http://www.rddl.org/
- Advanced Message Queuing Protocol (AMQP), http://www.amqp.org
- WS Reliable Messaging (WS RM), http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrm
- UDDI Version 3 Specification, http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3
- A Universally Unique Identifier (UUID) URN Namespace, http://tools.ietf.org/html/rfc4122
- Gregorio, Joe: RESTify DayTrader, http://bitworking.org/news/201/RESTify-DayTrader
- Nottingham, Mark: POST Once Exactly, http://www.mnot.net/drafts/draft-nottingham-http-poe-00.txt
- Goland, Yaron: SOA-Reliability (SOA-Rity) for HTTP, http://www.goland.org/soareliability/
- de hÓra, Bill: HTTPLR, http://dehora.net/doc/httplr/draft-httplr-01.html
- Two-phase commit protocol, http://en.wikipedia.org/wiki/Two-phase_commit_protocol
- Musgrove, Michael: Transactional support for JAX RS based applications, http://www.jboss.org/community/wiki/TransactionalsupportforJAXRSbasedapplications
- Editing the Web: Detecting the Lost Update Problem Using Unreserved Checkout; http://www.w3.org/1999/04/Editing/
- Loughran, Steve; Smith, Edmund: Rethinking the Java SOAP Stack, http://www.hpl.hp.com/techreports/2005/HPL-2005-83.pdf
- Postel’sches Gesetz (Postel’s Law), auch Robustness Principle, http://en.wikipedia.org/wiki/Robustness_Principle
- Bray, Tim; Dracon and Postel, http://www.tbray.org/ongoing/When/200x/2003/08/19/Draconianism
- Starke, Gernot; Tilkov, Stefan (Hrsg.): SOA-Expertenwissen, dpunkt-Verlag, http://soa-expertenwissen.de
- MuleSource Galaxy, http://www.mulesource.org/display/GALAXY/Home
- WSO2 Registry, http://wso2.org/projects/registry
- HP Systinet 2, http://www.google.com/search?q=hp+systinet
- WS-BPEL: Web Services Business Process Execution Language Version 2.0, http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
- curl, http://curl.haxx.se/
- GNU Wget, http://www.gnu.org/software/wget/
- Stenberg, Daniel: curl vs. Wget, http://daniel.haxx.se/docs/curl-vs-wget.html
- Netcraft, April 2009 Web Server Survey, http://news.netcraft.com/archives/2009/04/06/april_2009_web_server_survey.html
- nginx, http://nginx.net/
- lighttpd, http://www.lighttpd.net/
- W3C, ESI Language Specification 1.0, http://www.w3.org/TR/esi-lang
- Nottingham, Mark: Cache Channels for Squid, http://www.mnot.net/cache_channels/
- The Varnish Project, http://varnish.projects.linpro.no/
- Varnish: Notes from the Architect, http://varnish.projects.linpro.no/wiki/ArchitectNotes
- JSR 311: JAX-RS: The JavaTM API for RESTful Web Services, http://jcp.org/en/jsr/detail?id=311
- Jersey, JAX-RS (JSR 311) Reference Implementation, https://jersey.dev.java.net/
- JBoss RestEasy, http://www.jboss.org/resteasy/
- JSR 311 Final, InfoQ, http://www.infoq.com/news/2008/09/jsr311-approved
- Tilkov, Stefan: RESTful Web Services mit Java; JavaMagazin 01/2009, https://www.innoq.com/files/JM_1.09_tilkov_jax-RS.pdf
- Restlet – Lightweight REST framework, http://www.restlet.org/
- Spring MVC, http://www.springsource.org
- Windows Communication Foundation (WCF), http://www.microsoft.com/net/WindowsCommunicationFoundation.aspx
- Skonnard, Aaron: A Guide to Designing and Building RESTful Web Services with WCF 3.5, http://msdn.microsoft.com/en-us/library/dd203052.aspx
- Microsoft ASP.NET MVC, http://www.asp.net/mvc/
- Ruby on Rails, http://rubyonrails.org
- Tilkov, Stefan: RESTful Web Services mit Rails; RailsWay 01/2009, https://www.innoq.com/files/RM_1.09_tilkov_REST.pdf
- httplib2, http://code.google.com/p/httplib2/
- web.py, http://webpy.org/
- Django, http://www.djangoproject.com/
Any book with that many references has to be good.
That is an impressive list of references, useful for anyone interested in this area.
Really — HATEOAS needs more refs — Roy’s posts don’t help for many first timers.
I remember it all clicked in for me when I read http://www.stucharlton.com/blog/archives/000141.html
I’ll be interested to see what you come up with. I suspect that your book and the one I am working on will have a fair bit of overlap ;)
Ben, I didn’t know you were writing one – very much looking forward to it :-)
I have become a co-author on SOA with REST. What can I say? I read Thomas Erl’s Principles of Service Design and developed a man-crush.