REST Book: References

, May 31, 2009

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 …

  1. Fielding, Roy Thomas: Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000,
  2. RFC 2616: Hypertext Transfer Protocol – HTTP/1.1,
  3. Vinoski, Steve: Serendipitous Reuse, IEEE Internet Computing,
  4. Megginson, David: „With REST, every piece of information has its own URL.“;
  5. Carlyle, Benjamin: REST Rewiring,
  6. RFC 3986: Uniform Resource Identifier (URI): Generic Syntax,
  7. Bray, Tim: The Universal Republic of Love,
  8. Yahoo! API Documentation, „Retrieving Partial Resources“,
  9. URI Templates,
  10. Nielsen, Jakob:URL as UI,
  11. RFC 893: Transmission Control Protocol,
  12. Ambler, Scott: Choosing a Primary Key: Natural or Surrogate?,
  13. Squid,
  14. Baker, Mark: Accidentally RESTful,
  15. Berners-Lee, Tim: Cool URIs don't change,
  16. Google Web Accelerator,
  17. Fried, Jason: Google Web Accelerator: Hey, not so fast,
  18. Fielding, Roy T.:,
  19. HTML 5: A vocabulary and associated APIs for HTML and XHTML,
  20. Ajax, Wikipedia-Definition:
  21. JQuery: The Write Less, Do More JavaScript Library,
  22. Prototype JavaScript framework: Easy Ajax and DOM manipulation for dynamic web applications,
  23. Google Data APIs (GData),
  24. RFC 3864: Registration Procedures for Message Header Fields,
  25. WebDAV,
  26. RFC 4918: HTTP Extensions for Web Distributed Authoring and Versioning,
  27. RFC 3253: Versioning Extensions to WebDAV,
  28. PATCH Method for HTTP,
  29. Sayre, Robert: Simple Synchronization Method for JSON Objects,
  30. Nottingham, Mark: Link Relations and HTTP Header Linking, Internet Draft,
  31. Fielding, Roy T.: „REST APIs must be hypertext-driven“,
  32. RFC 2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types,
  33. Associating Resources with Namespaces, W3C TAG Finding,
  34. RFC 3023: XML Media Types,
  35. IANA MIME Media Types,
  36. RFC 4288: Media Type Specifications and Registration Procedures,
  37. UBL (Universal Business Language) V2.0,
  38. HTML 4.01 Specification,
  39. XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition),
  40. Pilgrim, Mark: The Road to XHTML 2.0: MIME Types,
  41. RFC 5147: URI Fragment Identifiers for the text/plain Media Type,
  42. RFC 2483: URI Resolution Services Necessary for URN Resolution,
  43. RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files,
  44. JSON (JavaScript Object Notation),
  45. RFC 4627: The application/json Media Type for JavaScript Object Notation (JSON)
  46. RSS 2.0 Specification,
  47. RFC 4287: The Atom Syndication Format,
  48. RFC 5005: Feed Paging and Archiving,
  49. RFC 4685: Atom Threading Extensions,
  50. Microformats-Community,
  51. Resource Description Framework (RDF):
  52. Beckett, David: Turtle – Terse RDF Triple Language,
  53. Dublin Core Metadata Element Set, Version 1.1,
  54. RDF Vocabulary Description Language 1.0: RDF Schema,
  55. OWL Web Ontology Language,
  56. Allemang, Dean; Hendler, James A.: Semantic Web for the Working Ontologist: Effective Modeling in RDFS and OWL, Morgan/Kaufman, 2008
  57. Pilgrim, Mark: Should Atom Use RDF?,
  58. Mazzocchi, Stefano: A No-Nonsense Guide to Semantic Web Specs for XML People,
  59. RFC 5023: The Atom Publishing Protocol,
  60. Pilgrim, Mark: The myth of RSS compatibility,
  61. Tomoyako, Ryan: Things Caches Do,
  62. Nothingham, Mark: The State of Proxy Caching,
  63. Nottingham, Mark: The State of Browser Caching,
  64. Nottingham, Mark: Caching Tutorial for Web Authors and Webmasters,
  65. RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2,
  66. Google APIs: Authentication for Installed Applications,
  67. RFC 2617: HTTP Authentication: Basic and Digest Access Authentication,
  68. RFC 2104: HMAC: Keyed-Hashing for Message Authentication,
  69. Amazon S3 REST Authentication,
  70. Google: How to use Post-Commit Web Hooks for your project,
  71. OpenID Authentication 2.0,
  72. RFC 2631: Diffie-Hellman Key Agreement Method,
  73. OAuth Core 1.0,
  74. Hammer-Lahav, Eran: Beginner’s Guide to OAuth,
  75. mod_authz_ldap: An Apache LDAP Authorization module,
  76. Clark, James: HTTP: what to sign?,
  77. XML Encryption Syntax and Processing,
  78. XML-Signature and Syntax Processing,
  79. Google Data APIs Authentication Overview,
  80. WSDL 1.1, W3C Note,
  81. WSDL 2.0, W3C Recommendation,
  82. WADL (Web Application Description Language),
  83. Resource Directory Description Language (RDDL),
  84. Advanced Message Queuing Protocol (AMQP),
  85. WS Reliable Messaging (WS RM),
  86. UDDI Version 3 Specification,
  87. A Universally Unique Identifier (UUID) URN Namespace,
  88. Gregorio, Joe: RESTify DayTrader,
  89. Nottingham, Mark: POST Once Exactly,
  90. Goland, Yaron: SOA-Reliability (SOA-Rity) for HTTP,
  91. de hÓra, Bill: HTTPLR,
  92. Two-phase commit protocol,
  93. Musgrove, Michael: Transactional support for JAX RS based applications,
  94. Editing the Web: Detecting the Lost Update Problem Using Unreserved Checkout;
  95. Loughran, Steve; Smith, Edmund: Rethinking the Java SOAP Stack,
  96. Postel’sches Gesetz (Postel’s Law), auch Robustness Principle,
  97. Bray, Tim; Dracon and Postel,
  98. Starke, Gernot; Tilkov, Stefan (Hrsg.): SOA-Expertenwissen, dpunkt-Verlag,
  99. MuleSource Galaxy,
  100. WSO2 Registry,
  101. HP Systinet 2,
  102. WS-BPEL: Web Services Business Process Execution Language Version 2.0,
  103. curl,
  104. GNU Wget,
  105. Stenberg, Daniel: curl vs. Wget,
  106. Netcraft, April 2009 Web Server Survey,
  107. nginx,
  108. lighttpd,
  109. W3C, ESI Language Specification 1.0,
  110. Nottingham, Mark: Cache Channels for Squid,
  111. The Varnish Project,
  112. Varnish: Notes from the Architect,
  113. JSR 311: JAX-RS: The JavaTM API for RESTful Web Services,
  114. Jersey, JAX-RS (JSR 311) Reference Implementation,
  115. JBoss RestEasy,
  116. JSR 311 Final, InfoQ,
  117. Tilkov, Stefan: RESTful Web Services mit Java; JavaMagazin 01/2009,
  118. Restlet – Lightweight REST framework,
  119. Spring MVC,
  120. Windows Communication Foundation (WCF),
  121. Skonnard, Aaron: A Guide to Designing and Building RESTful Web Services with WCF 3.5,
  122. Microsoft ASP.NET MVC,
  123. Ruby on Rails,
  124. Tilkov, Stefan: RESTful Web Services mit Rails; RailsWay 01/2009,
  125. httplib2,
  127. Django,
On May 31, 2009 8:54 PM, Colin Jack said:

Any book with that many references has to be good.

On June 1, 2009 8:19 AM, Subbu Allamaraju said:

That is an impressive list of references, useful for anyone interested in this area.

On June 1, 2009 12:55 PM, duryodhan said:

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

On June 8, 2009 5:18 AM, Benjamin Carlyle said:

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 ;)

On June 8, 2009 7:37 AM, Stefan Tilkov said:

Ben, I didn’t know you were writing one – very much looking forward to it :-)

On June 12, 2009 2:27 PM, Benjamin Carlyle said:

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.