[Catalyst] Re: RFC: Catalyst::Controller::REST::DBIC

J. Shirley jshirley at gmail.com
Sun May 4 15:58:21 BST 2008


On Sun, May 4, 2008 at 7:15 AM, Matt S Trout <dbix-class at trout.me.uk> wrote:
> On Sun, May 04, 2008 at 09:10:56AM +0200, Aristotle Pagaltzis wrote:
>  > * luke saunders <luke.saunders at gmail.com> [2008-05-04 02:50]:
>  > > Also it doesn't distinguish between POST, PUT, DELETE and GET
>  > > HTTP requests favouring instead entirely separate endpoints,
>  > > but that's up for discussion.
>  >
>  > Putting the verb in the URI is RPC, not REST. This is not a
>  > matter of discussion.
>
>  No, but how you provide an alternative to full RESTness for clients that
>  don't handle the full range of HTTP verbs -is- a matter for discussion.
>
>  Or at least a matter for determining an architecture that allows you to
>  use whatever alternative you like.
>
>  Please don't let your obsessive REST advocacy blind you to pragmatic
>  software development issues; it's starting to get boring.
>

Naming things REST when they aren't confuses the namespace and further
propagates the confusion about what REST actually is.  Call it
something else and do everybody who actually tries to build RESTful
apps a favor.  Trying to argue in favor of naming something that isn't
REST in any way REST does a disservice to the world.  And kills
puppies, deprives worthy little girls of ponies, elects
neoconservatives to office and, quite possibly, lights a bag of
excrement on your porch then ringing your doorbell and running.

And, on a more topical note, my method for having actual REST and then
a dumbed down browser version is similar to jrockway's suggestion
about dispatch methods.  My approach is a set of very thin actions
that exist outside of the main API space (or, what I've been playing
around with is a more adaptive interface based on what Dave Rolsky is
working on: http://search.cpan.org/~drolsky/Catalyst-Request-REST-ForBrowsers-0.01/lib/Catalyst/Request/REST/ForBrowsers.pm).
 They really end up just being a sort of internal API to the base web
service.  This also addresses the id == primary key issue, because in
your front-end browser-facing scheme, you have /book/id/{primary key},
which maps to /book/{unique identifier}.



More information about the Catalyst mailing list