{"id":1939,"date":"2007-05-29T14:42:10","date_gmt":"2007-05-29T18:42:10","guid":{"rendered":"http:\/\/www.markbaker.ca\/blog\/2007\/05\/29\/rest-wadl-forest-trees\/"},"modified":"2007-05-29T14:42:10","modified_gmt":"2007-05-29T18:42:10","slug":"rest-wadl-forest-trees","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2007\/05\/rest-wadl-forest-trees\/","title":{"rendered":"REST, WADL, forest, trees"},"content":{"rendered":"<p>I&#8217;m kinda busy with a bunch of things on my plate, but felt I had to chime in on the latest <a href=\"http:\/\/www.tbray.org\/ongoing\/When\/200x\/2007\/05\/28\/REST\">calls<\/a> for a RESTful description language ala <a href=\"https:\/\/wadl.dev.java.net\/\">WADL<\/a>.<\/p>\n\n<p><a href=\"http:\/\/plasmasturm.org\/log\/460\/\">Aristotle&#8217;s response<\/a> struck a chord;<\/p>\n\n<blockquote cite=\"http:\/\/plasmasturm.org\/log\/460\/\">\n[&#8230;] there isn\u2019t much to describe; there aren\u2019t any methods or signatures thereof to document, since access to resources is uniform and governed by the verbs defined in RFC 2616 (in the case of HTTP, anyway)\n<\/blockquote>\n\n<p>Right-o, though it might be helpful to rephrase that last bit as &#8220;since access to resources is through the *same* uniform interface&#8221;, because that&#8217;s the whole point of REST: <em>all services expose the same interface<\/em>.  This is what provides the majority of its <a href=\"http:\/\/www.infoq.com\/news\/2006\/12\/separation-of-concerns\">loose coupling<\/a>, and is the <a href=\"http:\/\/www.ics.uci.edu\/~fielding\/pubs\/dissertation\/evaluation.htm#sec_6_5_2\">principle differentiator<\/a> from RPC.<\/p>\n\n<p>So if you&#8217;re writing (or generating) contract\/interface-level code which can&#8217;t late-bind to <em>all<\/em> resources, everywhere, you&#8217;re not doing REST (10 kudos to whomever identifies the specific constraint being violated).<\/p>\n\n<p>Cut the cord already!  RPC is dead.  You&#8217;re not in Kansas anymore.<\/p>","protected":false},"excerpt":{"rendered":"I&#8217;m kinda busy with a bunch of things on my plate, but felt I had to chime in on the latest calls for a RESTful description language ala WADL. Aristotle&#8217;s response struck a chord; [&#8230;] there isn\u2019t much to describe; there aren\u2019t any methods or signatures thereof to document, since access to resources is uniform [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[22,48,37,38],"class_list":["post-1939","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-rest","tag-softarch","tag-webarch","tag-webservices"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=1939"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1939\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=1939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=1939"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=1939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}