<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: rest</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/rest.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2011-01-30T09:17:00+00:00</updated><author><name>Simon Willison</name></author><entry><title>Is Node.js a strong platform to use to build a RESTful API platform?</title><link href="https://simonwillison.net/2011/Jan/30/is-nodejs-a-strong/#atom-tag" rel="alternate"/><published>2011-01-30T09:17:00+00:00</published><updated>2011-01-30T09:17:00+00:00</updated><id>https://simonwillison.net/2011/Jan/30/is-nodejs-a-strong/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Is-Node-js-a-strong-platform-to-use-to-build-a-RESTful-API-platform/answer/Simon-Willison"&gt;Is Node.js a strong platform to use to build a RESTful API platform?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Yes. It's very, very good at speaking HTTP.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/nodejs"&gt;nodejs&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="nodejs"/><category term="rest"/><category term="quora"/></entry><entry><title>Why do some websites implement their logout link as a form post via JavaScript versus a plain old GET request?</title><link href="https://simonwillison.net/2010/Oct/16/why-do-some-websites/#atom-tag" rel="alternate"/><published>2010-10-16T11:47:00+00:00</published><updated>2010-10-16T11:47:00+00:00</updated><id>https://simonwillison.net/2010/Oct/16/why-do-some-websites/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Why-do-some-websites-implement-their-logout-link-as-a-form-post-via-JavaScript-versus-a-plain-old-GET-request/answer/Simon-Willison"&gt;Why do some websites implement their logout link as a form post via JavaScript versus a plain old GET request?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Probably because if you implement logout as a GET action, I can force you to log out of a site by tricking you in to visiting a page with an &amp;lt;img src="&lt;span&gt;&lt;a href="http://yoursite.com/logout/"&gt;http://yoursite.com/logout/&lt;/a&gt;&lt;/span&gt;" width="1" height="1"&amp;gt; element on it.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="javascript"/><category term="rest"/><category term="security"/><category term="web-development"/><category term="quora"/></entry><entry><title>Closure Compiler Service</title><link href="https://simonwillison.net/2010/Aug/9/closure/#atom-tag" rel="alternate"/><published>2010-08-09T13:17:00+00:00</published><updated>2010-08-09T13:17:00+00:00</updated><id>https://simonwillison.net/2010/Aug/9/closure/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://closure-compiler.appspot.com/home"&gt;Closure Compiler Service&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A hosted version of the Google Closure Compiler (JavaScript minifier) running on App Engine. It has both a user interface and a REST API, which means you can use it as part of an automated build process without needing to set up a local copy of the software.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://djangosnippets.org/snippets/2141/"&gt;Django snippets&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apis"&gt;apis&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/closure"&gt;closure&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/google"&gt;google&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/minification"&gt;minification&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;&lt;/p&gt;



</summary><category term="apis"/><category term="closure"/><category term="google"/><category term="javascript"/><category term="minification"/><category term="rest"/><category term="recovered"/></entry><entry><title>Elastic Search</title><link href="https://simonwillison.net/2010/Feb/11/elastic/#atom-tag" rel="alternate"/><published>2010-02-11T18:33:14+00:00</published><updated>2010-02-11T18:33:14+00:00</updated><id>https://simonwillison.net/2010/Feb/11/elastic/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.elasticsearch.com/"&gt;Elastic Search&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Solr has competition! Like Solr, Elastic Search provides a RESTful JSON HTTP interface to Lucene. The focus here is on distribution, auto-sharding and high availability. It’s even easier to get started with than Solr, partly due to the focus on providing a schema-less document store, but it’s currently missing out on a bunch of useful Solr features (a web interface and faceting are the two that stand out). The high availability features look particularly interesting. UPDATE: I was incorrect, basic faceted queries are already supported.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://www.elasticsearch.com/blog/2010/02/08/youknowforsearch.html"&gt;ElasticSearch blog&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elasticsearch"&gt;elasticsearch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/java"&gt;java&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/lucene"&gt;lucene&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/scaling"&gt;scaling&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/search"&gt;search&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sharding"&gt;sharding&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/solr"&gt;solr&lt;/a&gt;&lt;/p&gt;



</summary><category term="elasticsearch"/><category term="http"/><category term="java"/><category term="json"/><category term="lucene"/><category term="rest"/><category term="scaling"/><category term="search"/><category term="sharding"/><category term="solr"/></entry><entry><title>Announcing Alice and Wonderland</title><link href="https://simonwillison.net/2009/Jul/17/rabbits/#atom-tag" rel="alternate"/><published>2009-07-17T09:12:45+00:00</published><updated>2009-07-17T09:12:45+00:00</updated><id>https://simonwillison.net/2009/Jul/17/rabbits/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://willcodeforfoo.com/2009/07/13/announcing-alice/"&gt;Announcing Alice and Wonderland&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Continuing the RabbitMQ “stuff to do with rabbits” naming convention, Alice is a RESTful interface to RabbitMQ which exposes information about vhosts/queues/users/exchanges/etc as JSON. Wonderland is a web UI for RabbitMQ implemented as a pure Ajax application which calls Alice.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ajax"&gt;ajax&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/alice"&gt;alice&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/aliceinwonderland"&gt;aliceinwonderland&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/message-queues"&gt;message-queues&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/queues"&gt;queues&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rabbitmq"&gt;rabbitmq&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wonderland"&gt;wonderland&lt;/a&gt;&lt;/p&gt;



</summary><category term="ajax"/><category term="alice"/><category term="aliceinwonderland"/><category term="javascript"/><category term="json"/><category term="message-queues"/><category term="queues"/><category term="rabbitmq"/><category term="rest"/><category term="wonderland"/></entry><entry><title>Installing Django, Solr, Varnish and Supervisord with Buildout</title><link href="https://simonwillison.net/2009/Jun/7/bertrand/#atom-tag" rel="alternate"/><published>2009-06-07T13:54:44+00:00</published><updated>2009-06-07T13:54:44+00:00</updated><id>https://simonwillison.net/2009/Jun/7/bertrand/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://zebert.blogspot.com/2009/05/installing-django-solr-varnish-and.html"&gt;Installing Django, Solr, Varnish and Supervisord with Buildout&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Useful, detailed instructions... but I still think this stuff is Way Too Difficult at the moment. I’m a big fan of the idea of sites that are assembled from multiple smaller web services talking HTTP to each other, but ensuring all the moving parts stay running is massively more painful than just running Apache and MySQL.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apache"&gt;apache&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bertrand-mathieu"&gt;bertrand-mathieu&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/buildout"&gt;buildout&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mysql"&gt;mysql&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/operations"&gt;operations&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/solr"&gt;solr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/supervisord"&gt;supervisord&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sysadmin"&gt;sysadmin&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/varnish"&gt;varnish&lt;/a&gt;&lt;/p&gt;



</summary><category term="apache"/><category term="bertrand-mathieu"/><category term="buildout"/><category term="django"/><category term="mysql"/><category term="operations"/><category term="python"/><category term="rest"/><category term="solr"/><category term="supervisord"/><category term="sysadmin"/><category term="varnish"/></entry><entry><title>resty</title><link href="https://simonwillison.net/2009/May/18/resty/#atom-tag" rel="alternate"/><published>2009-05-18T13:07:09+00:00</published><updated>2009-05-18T13:07:09+00:00</updated><id>https://simonwillison.net/2009/May/18/resty/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://github.com/micha/resty"&gt;resty&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
58 lines of bash provides a better command-line interface to RESTful APIs, using curl under the hood. This should save me from running “man curl” several times a week.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apis"&gt;apis&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bash"&gt;bash&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cli"&gt;cli&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/curl"&gt;curl&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/resty"&gt;resty&lt;/a&gt;&lt;/p&gt;



</summary><category term="apis"/><category term="bash"/><category term="cli"/><category term="curl"/><category term="rest"/><category term="resty"/></entry><entry><title>django-piston</title><link href="https://simonwillison.net/2009/Apr/30/jespern/#atom-tag" rel="alternate"/><published>2009-04-30T19:55:15+00:00</published><updated>2009-04-30T19:55:15+00:00</updated><id>https://simonwillison.net/2009/Apr/30/jespern/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bitbucket.org/jespern/django-piston/wiki/Home"&gt;django-piston&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Promising looking Django mini-framework for creating RESTful APIs, from the bitbucket team. Ticks all of Jacob’s boxes, even including built-in pluggable authentication support with HTTP Basic, Digest and OAuth out of the box.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/apis"&gt;apis&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/authentication"&gt;authentication&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bitbucket"&gt;bitbucket&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/digest"&gt;digest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jespernoehr"&gt;jespernoehr&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/oauth"&gt;oauth&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/piston"&gt;piston&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/restful"&gt;restful&lt;/a&gt;&lt;/p&gt;



</summary><category term="apis"/><category term="authentication"/><category term="bitbucket"/><category term="digest"/><category term="django"/><category term="jespernoehr"/><category term="oauth"/><category term="piston"/><category term="python"/><category term="rest"/><category term="restful"/></entry><entry><title>REST worst practices</title><link href="https://simonwillison.net/2009/Apr/30/rest/#atom-tag" rel="alternate"/><published>2009-04-30T19:53:12+00:00</published><updated>2009-04-30T19:53:12+00:00</updated><id>https://simonwillison.net/2009/Apr/30/rest/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://jacobian.org/writing/rest-worst-practices/"&gt;REST worst practices&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Jacob Kaplan-Moss’ thoughts on the characteristics of a well designed Django REST API library, from November 2008.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jacob-kaplan-moss"&gt;jacob-kaplan-moss&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="jacob-kaplan-moss"/><category term="python"/><category term="rest"/></entry><entry><title>Quoting Dare Obasanjo</title><link href="https://simonwillison.net/2008/Oct/24/dare/#atom-tag" rel="alternate"/><published>2008-10-24T13:39:11+00:00</published><updated>2008-10-24T13:39:11+00:00</updated><id>https://simonwillison.net/2008/Oct/24/dare/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://www.25hoursaday.com/weblog/2008/10/24/RESTAPIDesignInventMediaTypesNotProtocolsAndUnderstandTheImportanceOfHyperlinks.aspx"&gt;&lt;p&gt;The key thing to remember is that REST is about building software that scales to usage on the World Wide Web by being a good participant of the Web ecosystem. Ideally a RESTful API should be designed to be implementable by thousands of websites and consumed by hundreds of applications running on dozens of platforms with zero coupling between the client applications and the Web services.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://www.25hoursaday.com/weblog/2008/10/24/RESTAPIDesignInventMediaTypesNotProtocolsAndUnderstandTheImportanceOfHyperlinks.aspx"&gt;Dare Obasanjo&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dare-obasanjo"&gt;dare-obasanjo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-services"&gt;web-services&lt;/a&gt;&lt;/p&gt;



</summary><category term="dare-obasanjo"/><category term="rest"/><category term="web-services"/></entry><entry><title>Magnificent Seven - the value of Atom</title><link href="https://simonwillison.net/2008/Oct/19/bill/#atom-tag" rel="alternate"/><published>2008-10-19T22:24:21+00:00</published><updated>2008-10-19T22:24:21+00:00</updated><id>https://simonwillison.net/2008/Oct/19/bill/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.dehora.net/journal/2008/10/07/magnificent-seven-the-value-of-atom/"&gt;Magnificent Seven - the value of Atom&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
The seven core things that Atom solves so that you don’t have to.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/atom"&gt;atom&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/bill-de-hora"&gt;bill-de-hora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xml"&gt;xml&lt;/a&gt;&lt;/p&gt;



</summary><category term="atom"/><category term="bill-de-hora"/><category term="rest"/><category term="xml"/></entry><entry><title>Bloom Filter Resources</title><link href="https://simonwillison.net/2008/Oct/19/bloom/#atom-tag" rel="alternate"/><published>2008-10-19T22:22:19+00:00</published><updated>2008-10-19T22:22:19+00:00</updated><id>https://simonwillison.net/2008/Oct/19/bloom/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bitworking.org/news/380/bloom-filter-resources"&gt;Bloom Filter Resources&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A continuation of the discussion about how to transfer information about a large number of recently updated resources around in an efficient way, Joe provides working code illustrating a simple approach using bloom filters.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bloom-filters"&gt;bloom-filters&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hashing"&gt;hashing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/joe-gregorio"&gt;joe-gregorio&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;&lt;/p&gt;



</summary><category term="bloom-filters"/><category term="hashing"/><category term="joe-gregorio"/><category term="rest"/></entry><entry><title>Versioning REST Web Services</title><link href="https://simonwillison.net/2008/Oct/13/peter/#atom-tag" rel="alternate"/><published>2008-10-13T12:45:13+00:00</published><updated>2008-10-13T12:45:13+00:00</updated><id>https://simonwillison.net/2008/Oct/13/peter/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://barelyenough.org/blog/2008/05/versioning-rest-web-services/"&gt;Versioning REST Web Services&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Peter Williams suggests using a vendor MIME media type in the Accept header to specify a required API version, because embedding the API version in the URL itself leads to a single resource ending up with many different URLs, one for each API version.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/accept"&gt;accept&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/contentnegotiation"&gt;contentnegotiation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/peter-williams"&gt;peter-williams&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/urls"&gt;urls&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/versioning"&gt;versioning&lt;/a&gt;&lt;/p&gt;



</summary><category term="accept"/><category term="contentnegotiation"/><category term="http"/><category term="peter-williams"/><category term="rest"/><category term="urls"/><category term="versioning"/></entry><entry><title>RestView - a class for creating a view that dispatches based on request.method</title><link href="https://simonwillison.net/2008/Sep/21/restview/#atom-tag" rel="alternate"/><published>2008-09-21T20:47:16+00:00</published><updated>2008-09-21T20:47:16+00:00</updated><id>https://simonwillison.net/2008/Sep/21/restview/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.djangosnippets.org/snippets/1071/"&gt;RestView - a class for creating a view that dispatches based on request.method&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I finally got around to writing up a simple approach I’ve been using for REST-style view functions in Django that dispatch based on request.method.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://jhcore.com/2008/09/20/getting-restful-with-webpy/"&gt;Getting RESTful with web.py&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django-snippets"&gt;django-snippets&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/restful"&gt;restful&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/restview"&gt;restview&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/views"&gt;views&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="django-snippets"/><category term="python"/><category term="rest"/><category term="restful"/><category term="restview"/><category term="views"/></entry><entry><title>Dare left something out (and it's important)</title><link href="https://simonwillison.net/2008/Aug/18/dare/#atom-tag" rel="alternate"/><published>2008-08-18T09:39:16+00:00</published><updated>2008-08-18T09:39:16+00:00</updated><id>https://simonwillison.net/2008/Aug/18/dare/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.scripting.com/stories/2008/08/17/dareLeftSomethingOutAndIts.html"&gt;Dare left something out (and it&amp;#x27;s important)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Dave Winer: “You should at least learn the lessons and add to REST what it needs to catch up with XML-RPC. Seriously. What’s missing in REST, btw, is a standard method of serializing structs, lists and scalar types.” That would be JSON.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dare-obasanjo"&gt;dare-obasanjo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dave-winer"&gt;dave-winer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xml-rpc"&gt;xml-rpc&lt;/a&gt;&lt;/p&gt;



</summary><category term="dare-obasanjo"/><category term="dave-winer"/><category term="json"/><category term="rest"/><category term="xml-rpc"/></entry><entry><title>Explaining REST to Damien Katz</title><link href="https://simonwillison.net/2008/Aug/17/dare/#atom-tag" rel="alternate"/><published>2008-08-17T23:19:32+00:00</published><updated>2008-08-17T23:19:32+00:00</updated><id>https://simonwillison.net/2008/Aug/17/dare/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.25hoursaday.com/weblog/2008/08/17/ExplainingRESTToDamienKatz.aspx"&gt;Explaining REST to Damien Katz&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I didn’t know that it was Mark Baker back in 2002 who first pointed out that SOAP was flawed because it ignored the architecture of the Web as defined by Roy Fielding’s Ph.D thesis.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/damien-katz"&gt;damien-katz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dare-obasanjo"&gt;dare-obasanjo&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/history"&gt;history&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mark-baker"&gt;mark-baker&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/royfielding"&gt;royfielding&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/soap"&gt;soap&lt;/a&gt;&lt;/p&gt;



</summary><category term="damien-katz"/><category term="dare-obasanjo"/><category term="history"/><category term="mark-baker"/><category term="rest"/><category term="royfielding"/><category term="soap"/></entry><entry><title>REST, I just don't get it</title><link href="https://simonwillison.net/2008/Aug/15/katz/#atom-tag" rel="alternate"/><published>2008-08-15T08:20:04+00:00</published><updated>2008-08-15T08:20:04+00:00</updated><id>https://simonwillison.net/2008/Aug/15/katz/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://damienkatz.net/2008/08/rest-i-just-dont-get-it.html"&gt;REST, I just don&amp;#x27;t get it&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Read the comments for some excellent practical reasons to care about REST, including cache management (PUT and DELETE can expire the cache entries for the corresponding GET), the ability to add or move parts of the server API without redeploying client libraries and the idempotency of GET / PUT / DELETE and HEAD (repeated POST operations may have side-effects).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/caching"&gt;caching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/damien-katz"&gt;damien-katz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/delete"&gt;delete&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/get"&gt;get&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/idempotency"&gt;idempotency&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/post"&gt;post&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/put"&gt;put&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;&lt;/p&gt;



</summary><category term="caching"/><category term="damien-katz"/><category term="delete"/><category term="get"/><category term="idempotency"/><category term="post"/><category term="put"/><category term="rest"/></entry><entry><title>Quoting Damien Katz</title><link href="https://simonwillison.net/2008/Aug/15/damien/#atom-tag" rel="alternate"/><published>2008-08-15T08:07:06+00:00</published><updated>2008-08-15T08:07:06+00:00</updated><id>https://simonwillison.net/2008/Aug/15/damien/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://damienkatz.net/2008/08/rest-i-just-dont-get-it.html"&gt;&lt;p&gt;If it's easy to make all your calls conform to the RESTful verb architecture, then that's good, I guess. But if not, then just use a POST as an RPC call, keep it as simple as possible and be done with it. And don't spend another minute worrying about being RESTful or not.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://damienkatz.net/2008/08/rest-i-just-dont-get-it.html"&gt;Damien Katz&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/damien-katz"&gt;damien-katz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/post"&gt;post&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/restful"&gt;restful&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rpc"&gt;rpc&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-services"&gt;web-services&lt;/a&gt;&lt;/p&gt;



</summary><category term="damien-katz"/><category term="http"/><category term="post"/><category term="rest"/><category term="restful"/><category term="rpc"/><category term="web-services"/></entry><entry><title>What is it like to write a technical book?</title><link href="https://simonwillison.net/2008/Jun/20/like/#atom-tag" rel="alternate"/><published>2008-06-20T08:18:53+00:00</published><updated>2008-06-20T08:18:53+00:00</updated><id>https://simonwillison.net/2008/Jun/20/like/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.xaprb.com/blog/2008/06/15/what-is-it-like-to-write-a-technical-book/"&gt;What is it like to write a technical book?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Plenty of food for thought from the lead author of the new edition of High Performance MySQL. It’s amazing how Word is still an integral part of most technical book projects despite its obvious inadequacies compared to a toolchain based on plain text files and Subversion (the Django Book used ReST and Subversion to great effect).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/baron-schwartz"&gt;baron-schwartz&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/plaintext"&gt;plaintext&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/subversion"&gt;subversion&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/word"&gt;word&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/writing"&gt;writing&lt;/a&gt;&lt;/p&gt;



</summary><category term="baron-schwartz"/><category term="django"/><category term="plaintext"/><category term="rest"/><category term="subversion"/><category term="word"/><category term="writing"/></entry><entry><title>Persevere adds Comet Support</title><link href="https://simonwillison.net/2008/May/13/persevere/#atom-tag" rel="alternate"/><published>2008-05-13T08:09:29+00:00</published><updated>2008-05-13T08:09:29+00:00</updated><id>https://simonwillison.net/2008/May/13/persevere/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://cometdaily.com/2008/05/12/persevere-adds-comet-support/"&gt;Persevere adds Comet Support&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Persevere sounds neat: a RESTful HTTP/JSON data store (the interface reminds me of CouchDB) which recently gained the ability to “subscribe” to a resource and receive notifications of updates via comet.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/comet"&gt;comet&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/couchdb"&gt;couchdb&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/persevere"&gt;persevere&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/restful"&gt;restful&lt;/a&gt;&lt;/p&gt;



</summary><category term="comet"/><category term="couchdb"/><category term="javascript"/><category term="json"/><category term="persevere"/><category term="rest"/><category term="restful"/></entry><entry><title>Multi-Inflection-Point Alert</title><link href="https://simonwillison.net/2008/Apr/26/ongoing/#atom-tag" rel="alternate"/><published>2008-04-26T18:48:57+00:00</published><updated>2008-04-26T18:48:57+00:00</updated><id>https://simonwillison.net/2008/Apr/26/ongoing/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.tbray.org/ongoing/When/200x/2008/04/24/Inflection"&gt;Multi-Inflection-Point Alert&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Dammit, Tim, stop giving away our competitive advantages!


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bigtable"&gt;bigtable&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/couchdb"&gt;couchdb&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/java"&gt;java&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rails"&gt;rails&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/simpledb"&gt;simpledb&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/soap"&gt;soap&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tim-bray"&gt;tim-bray&lt;/a&gt;&lt;/p&gt;



</summary><category term="bigtable"/><category term="couchdb"/><category term="java"/><category term="python"/><category term="rails"/><category term="rest"/><category term="simpledb"/><category term="soap"/><category term="tim-bray"/></entry><entry><title>Quoting Ryan Tomayko</title><link href="https://simonwillison.net/2008/Jan/13/ryan/#atom-tag" rel="alternate"/><published>2008-01-13T23:34:19+00:00</published><updated>2008-01-13T23:34:19+00:00</updated><id>https://simonwillison.net/2008/Jan/13/ryan/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://tomayko.com/weblog/2008/01/13/lying-through-their-teeth"&gt;&lt;p&gt;I've never heard anyone from the REST camp claim that building distributed systems was "easy". [...] The WS-* folks have historically been obsessed with making things easy, usually for an imaginary business analyst who is nowhere near as technically adept as they. The REST folks, on the other hand, seem much more interested in keeping the entire stack simple, and for everyone involved.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://tomayko.com/weblog/2008/01/13/lying-through-their-teeth"&gt;Ryan Tomayko&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ryan-tomayko"&gt;ryan-tomayko&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/simplicity"&gt;simplicity&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-services"&gt;web-services&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ws-star"&gt;ws-star&lt;/a&gt;&lt;/p&gt;



</summary><category term="rest"/><category term="ryan-tomayko"/><category term="simplicity"/><category term="web-services"/><category term="ws-star"/></entry><entry><title>A Taxonomy of Event- and REST-based Comet</title><link href="https://simonwillison.net/2007/Nov/21/comet/#atom-tag" rel="alternate"/><published>2007-11-21T20:18:13+00:00</published><updated>2007-11-21T20:18:13+00:00</updated><id>https://simonwillison.net/2007/Nov/21/comet/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://cometdaily.com/2007/11/21/a-taxonomy-of-event-and-rest-based-comet/"&gt;A Taxonomy of Event- and REST-based Comet&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Kris Zyp describes a conceptual model for Comet messages based on REST semantics (so you can send a PUT referencing a specific URI down to a client to represent an idempotent state change).


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/comet"&gt;comet&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/http"&gt;http&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/idempotent"&gt;idempotent&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/kriszyp"&gt;kriszyp&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/put"&gt;put&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;&lt;/p&gt;



</summary><category term="comet"/><category term="http"/><category term="idempotent"/><category term="javascript"/><category term="kriszyp"/><category term="put"/><category term="rest"/></entry><entry><title>[Release] CouchDB 0.7.0</title><link href="https://simonwillison.net/2007/Nov/17/couchdb/#atom-tag" rel="alternate"/><published>2007-11-17T00:25:10+00:00</published><updated>2007-11-17T00:25:10+00:00</updated><id>https://simonwillison.net/2007/Nov/17/couchdb/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://jan.prima.de/~jan/plok/archives/106-Release-CouchDB-0.7.0.html"&gt;[Release] CouchDB 0.7.0&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
This is a huge milestone for the project—it’s the first official release to include the JSON REST API instead of XML, and it’s also the first release that is “intended for widespread use”.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/couchdb"&gt;couchdb&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jan-lehnardt"&gt;jan-lehnardt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/json"&gt;json&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/releases"&gt;releases&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/xml"&gt;xml&lt;/a&gt;&lt;/p&gt;



</summary><category term="couchdb"/><category term="jan-lehnardt"/><category term="json"/><category term="releases"/><category term="rest"/><category term="xml"/></entry><entry><title>Quoting Assaf Arkin</title><link href="https://simonwillison.net/2007/Sep/10/labnotes/#atom-tag" rel="alternate"/><published>2007-09-10T10:58:59+00:00</published><updated>2007-09-10T10:58:59+00:00</updated><id>https://simonwillison.net/2007/Sep/10/labnotes/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://blog.labnotes.org/2007/09/10/rounded-corners-144-slight-of-hand/"&gt;&lt;p&gt;REST plays the same role as open source and open APIs: It eliminates tooling and vendoring as artificial barriers to adoption.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://blog.labnotes.org/2007/09/10/rounded-corners-144-slight-of-hand/"&gt;Assaf Arkin&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/assaf-arkin"&gt;assaf-arkin&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;&lt;/p&gt;



</summary><category term="assaf-arkin"/><category term="rest"/></entry><entry><title>The Python docs have been redesigned for 2.6</title><link href="https://simonwillison.net/2007/Aug/18/overview/#atom-tag" rel="alternate"/><published>2007-08-18T12:39:51+00:00</published><updated>2007-08-18T12:39:51+00:00</updated><id>https://simonwillison.net/2007/Aug/18/overview/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://docs.python.org/dev/"&gt;The Python docs have been redesigned for 2.6&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
They’re beautiful. The docs for a module are on a single page now (rather than splitting over multiple pages), they’ve added unobtrusive permalinks to individual sections and the whole thing is built on ReST rather than LaTeX.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/documentation"&gt;documentation&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/latex"&gt;latex&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;&lt;/p&gt;



</summary><category term="documentation"/><category term="latex"/><category term="python"/><category term="rest"/></entry><entry><title>Wesabi: Your bank has a REST API now</title><link href="https://simonwillison.net/2007/Jul/12/wheaties/#atom-tag" rel="alternate"/><published>2007-07-12T17:20:48+00:00</published><updated>2007-07-12T17:20:48+00:00</updated><id>https://simonwillison.net/2007/Jul/12/wheaties/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.wesabe.com/index.php/2007/07/12/your-bank-has-a-rest-api-now-shhh-dont-tell-them/"&gt;Wesabi: Your bank has a REST API now&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Excellent—I’ve been saying for a while now that I’d really love to be able to program my bank account.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/api"&gt;api&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/banking"&gt;banking&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wesabi"&gt;wesabi&lt;/a&gt;&lt;/p&gt;



</summary><category term="api"/><category term="banking"/><category term="rest"/><category term="wesabi"/></entry><entry><title>Quoting Elliotte Rusty Harold</title><link href="https://simonwillison.net/2007/Jul/7/cafes/#atom-tag" rel="alternate"/><published>2007-07-07T09:40:37+00:00</published><updated>2007-07-07T09:40:37+00:00</updated><id>https://simonwillison.net/2007/Jul/7/cafes/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://cafe.elharo.com/xml/north-and-south/"&gt;&lt;p&gt;WS-* is North Korea and REST is South Korea. While REST will go on to become an economic powerhouse with steadily increasing standards of living for all its citizens, WS-* is doomed to sixty  years of starvation, poverty, tyranny, and defections until it eventually collapses from its own fundamental inadequacies and is absorbed into the more sensible policies of its neighbor to the South.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://cafe.elharo.com/xml/north-and-south/"&gt;Elliotte Rusty Harold&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/elliotte-rusty-harold"&gt;elliotte-rusty-harold&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/korea"&gt;korea&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/northkorea"&gt;northkorea&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/southkorea"&gt;southkorea&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-services"&gt;web-services&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ws-star"&gt;ws-star&lt;/a&gt;&lt;/p&gt;



</summary><category term="elliotte-rusty-harold"/><category term="korea"/><category term="northkorea"/><category term="rest"/><category term="southkorea"/><category term="web-services"/><category term="ws-star"/></entry><entry><title>RESTify DayTrader</title><link href="https://simonwillison.net/2007/Jun/21/joe/#atom-tag" rel="alternate"/><published>2007-06-21T13:44:19+00:00</published><updated>2007-06-21T13:44:19+00:00</updated><id>https://simonwillison.net/2007/Jun/21/joe/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://bitworking.org/news/201/RESTify-DayTrader"&gt;RESTify DayTrader&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Killer REST case study from Joe Gregorio.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/daytrader"&gt;daytrader&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/joe-gregorio"&gt;joe-gregorio&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;&lt;/p&gt;



</summary><category term="daytrader"/><category term="joe-gregorio"/><category term="rest"/></entry><entry><title>Quoting Tim Bray</title><link href="https://simonwillison.net/2007/May/2/ongoing/#atom-tag" rel="alternate"/><published>2007-05-02T20:23:38+00:00</published><updated>2007-05-02T20:23:38+00:00</updated><id>https://simonwillison.net/2007/May/2/ongoing/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://www.tbray.org/ongoing/When/200x/2007/04/30/REST-is-easy"&gt;&lt;p&gt;People don't recognize how important URIs are. The notion that you have a huge, world-scale, information space, and that everything in it has an name and they're all just short strings that you can paint on the side of a bus; that's a new thing and a good thing.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://www.tbray.org/ongoing/When/200x/2007/04/30/REST-is-easy"&gt;Tim Bray&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/rest"&gt;rest&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tim-bray"&gt;tim-bray&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/uris"&gt;uris&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/urls"&gt;urls&lt;/a&gt;&lt;/p&gt;



</summary><category term="rest"/><category term="tim-bray"/><category term="uris"/><category term="urls"/></entry></feed>