{"id":235,"date":"2003-12-10T07:59:00","date_gmt":"2003-12-10T11:59:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=78"},"modified":"2003-12-10T07:59:00","modified_gmt":"2003-12-10T11:59:00","slug":"ws-i-and-uris","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2003\/12\/ws-i-and-uris\/","title":{"rendered":"WS-I and URIs"},"content":{"rendered":"<p>Today the WS-I <a href=\"http:\/\/www.crn.com\/sections\/BreakingNews\/dailyarchives.asp?ArticleID=46580\">announced<\/a>\na bunch of\n<a href=\"http:\/\/www.ws-i.org\/implementation.aspx\">implementations<\/a> of a sample application\nthey&#8217;d speced out.  Seems like a good idea.<\/p>\n\n<p>I downloaded a couple of them, and was very pleased to see a series\nof URIs that appeared as though they were identifying domain objects;<\/p>\n\n<pre>\nhttp:\/\/localhost:8080\/wsi\/scm\/logging\nhttp:\/\/localhost:8080\/wsi\/scm\/retailer\nhttp:\/\/localhost:8080\/wsi\/scm\/warehousea\nhttp:\/\/localhost:8080\/wsi\/scm\/warehouseb\nhttp:\/\/localhost:8080\/wsi\/scm\/warehousec\nhttp:\/\/localhost:8080\/wsi\/scm\/manufacturera\nhttp:\/\/localhost:8080\/wsi\/scm\/manufacturerb\nhttp:\/\/localhost:8080\/wsi\/scm\/manufacturerc\n<\/pre>\n\n<p>For a moment there, I thought my days of REST promotion were over and that\nsecretly and collectively, WS-I members had &#8220;got it&#8221;.  But alas, that wasn&#8217;t the\ncase.  Though you <em>can<\/em> invoke GET on the URIs, all they return &#8211; at\nleast in the case of <a href=\"http:\/\/webservice.bea.com\/WarehouseA\/WarehouseA\">BEA&#8217;s WarehouseA URI<\/a>\nis an HTML description of the object, include exposed operations and sample code.\n<a href=\"http:\/\/samples.bowstreet.com\/wsi\/soaprpc\/wsi\/WarehouseAImpl\">Bowstreet&#8217;s URI<\/a>\nreturns a SOAP fault, <a href=\"http:\/\/soapinterop.java.sun.com:8080\/wsi\/scm\/warehousea\">Sun&#8217;s<\/a>\nreturns an HTML page describing the state of the SOAP services,\n<a href=\"http:\/\/wsi.alphaworks.ibm.com\/Warehouse\/services\/Warehouse\">IBM&#8217;s<\/a> returns a\nprophetic HTML page, and <a href=\"http:\/\/www.coldrooster.com\/wsi\/warehousea\/warehouse.asmx\">Microsoft&#8217;s<\/a>\nreturns an indication that GET isn&#8217;t supported at all.  <a href=\"http:\/\/ws-i.oracle.com\/ws-i\/supplychain\/services\/WarehouseA\">Ditto for Oracle<\/a>.<\/p>\n\n<p>So why wasn&#8217;t the returned document a description of the state of the\nwarehouse, including inventory information?  Once you&#8217;ve got the URI for a\ndomain object (kudos on that, at least), why not serialize the state of that\ndomain object as a response to GET requests?<\/p>","protected":false},"excerpt":{"rendered":"Today the WS-I announced a bunch of implementations of a sample application they&#8217;d speced out. Seems like a good idea. I downloaded a couple of them, and was very pleased to see a series of URIs that appeared as though they were identifying domain objects; http:\/\/localhost:8080\/wsi\/scm\/logging http:\/\/localhost:8080\/wsi\/scm\/retailer http:\/\/localhost:8080\/wsi\/scm\/warehousea http:\/\/localhost:8080\/wsi\/scm\/warehouseb http:\/\/localhost:8080\/wsi\/scm\/warehousec http:\/\/localhost:8080\/wsi\/scm\/manufacturera http:\/\/localhost:8080\/wsi\/scm\/manufacturerb http:\/\/localhost:8080\/wsi\/scm\/manufacturerc For a [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-235","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-soap"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/235","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=235"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}