{"id":621,"date":"2005-01-06T00:58:00","date_gmt":"2005-01-06T04:58:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/2005\/01\/06\/the-effective-operation\/"},"modified":"2005-01-06T00:58:00","modified_gmt":"2005-01-06T04:58:00","slug":"the-effective-operation","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2005\/01\/the-effective-operation\/","title":{"rendered":"The effective operation"},"content":{"rendered":"<p>Another good\n<a href=\"http:\/\/www.xml.com\/pub\/a\/2005\/01\/05\/restful.html\">article<\/a>\nfrom\n<a href=\"http:\/\/www.bitworking.org\">Joe<\/a>.\nI left a comment, but wanted to repost it here, since I think\nthis is the most succinct description I&#8217;ve offered for explaining\nthis critical point.<\/p>\n\n<blockquote>\nNice job again Joe, but I think you&#8217;re a little (and I do mean *little* 8-) too rough on the existing service when you say &#8220;This is an RPC protocol trying to run over HTTP, and that misalignment is where the problems arise&#8221;. With the ListMyQueues and Read operations, putting them in a URI such that a GET returns the data *is* perfectly RESTful. This is because when in URI form, the effective operation &#8211; that which the client asks be done, and expects is done when receiving a successful response &#8211; is GET, not ListMyQueues.\n<\/blockquote>\n\n<p>It&#8217;s <em>very<\/em>(!) easy to\n<a href=\"http:\/\/lists.w3.org\/Archives\/Public\/www-ws-desc\/2004Apr\/0045.html\">misunderstand<\/a>\nthis point; the same point which is also, I believe, the principle impediment which\nprevents proponents of document oriented Web services from realizing that REST and the\nWeb is what they&#8217;ve been trying to build.<\/p>","protected":false},"excerpt":{"rendered":"Another good article from Joe. I left a comment, but wanted to repost it here, since I think this is the most succinct description I&#8217;ve offered for explaining this critical point. Nice job again Joe, but I think you&#8217;re a little (and I do mean *little* 8-) too rough on the existing service when you [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[40],"class_list":["post-621","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-xml"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/621","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=621"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/621\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=621"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}