{"id":197,"date":"2003-10-29T14:10:00","date_gmt":"2003-10-29T18:10:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=116"},"modified":"2003-10-29T14:10:00","modified_gmt":"2003-10-29T18:10:00","slug":"uri-proxy","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2003\/10\/uri-proxy\/","title":{"rendered":"URI Proxy"},"content":{"rendered":"<p>Because I needed to use this myself, but also because I wanted to\nflaunt the simplicity and expressiveness of\n<a href=\"http:\/\/www.markbaker.ca\/2003\/05\/RDF-Forms\/\">RDF Forms<\/a>,\nI whipped together a little spec &#8230;<\/p>\n\n<p><a href=\"http:\/\/www.markbaker.ca\/2003\/10\/UriProxy\/\">URI Proxy<\/a> provides\na means of describing a RESTful service as being a &#8220;proxy&#8221; (well, kinda &#8211; read\nthe spec) for other RESTful services.  Composition via aggregation.<\/p>\n\n<p>You&#8217;ve seen examples of services like this before; <a href=\"http:\/\/www.google.com\">Google&#8217;s<\/a>\ncache (<a href=\"http:\/\/www.google.ca\/search?q=cache:bGw80ShJfkoJ:www.markbaker.ca\/+&amp;hl=en&amp;ie=UTF-8\">example<\/a> &#8211; though the full URI isn&#8217;t used, which sucks),\nGoogle&#8217;s\n<a href=\"http:\/\/translate.google.com\">translator<\/a>\n(<a href=\"http:\/\/translate.google.com\/translate?u=http%3A%2F%2Fwww.markbaker.ca%2F2003%2F10%2FUriProxy%2F&amp;langpair=en%7Cfr&amp;hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;safe=off&amp;prev=%2Flanguage_tools\">example<\/a>)\nthe <a href=\"http:\/\/www.archive.org\">Web archive<\/a> (<a href=\"http:\/\/web.archive.org\/web\/20010723220800\/http:\/\/markbaker.ca\/\">example<\/a>), etc..<\/p>","protected":false},"excerpt":{"rendered":"Because I needed to use this myself, but also because I wanted to flaunt the simplicity and expressiveness of RDF Forms, I whipped together a little spec &#8230; URI Proxy provides a means of describing a RESTful service as being a &#8220;proxy&#8221; (well, kinda &#8211; read the spec) for other RESTful services. Composition via aggregation. [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-197","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/197","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=197"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/197\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}