in reply to RFC: REST.pm

Why don't you do a bunch of us a favor and define what "REST" means to you and in this context? There are lots of expansions to "REST" and some of the ones I've found don't seem to apply and some appear like they might apply and then there are the ones that I didn't find. So which one are you using above? Or did you define it somewhere and I just missed it?

Replies are listed 'Best First'.
Re^2: RFC: REST.pm
by t'mo (Pilgrim) on Nov 03, 2007 at 03:15 UTC

    No, I didn't define what I meant with "REST" elsewhere. I really had only two goals when starting this:

    1. Make "pretty" url's
    2. Have separate handlers for the HTTP verbs or methods

    The fact that I'm having trouble accomplishing #1 (i.e., unable to hack mod_rewrite sufficiently that index.pl is hidden, or even that it depends on mod_rewrite) is frustrating but minor. From the reading I've done on REST, handling the HTTP verbs differently is pretty important, and I think this approach does it pretty well.

    On the value of "pretty" url's, I've recently been thinking that having a url-mapping for functionality within a web application is a useful tool to organize the application.

    The biggest drawback I see with my implementation is the extra code you'd have to write (as opposed to "configure" in the url-mapping) to differentiate content-types, e.g.:

    # somewhere in a Renderer subclass... sub POST { my $self = shift; my $filename = $self->cgi->param('file'); my $type = $self->cgi->uploadInfo($filename)->{'Content-Type'}; if ( $type eq 'text/html' ) { # do something with the HTML } elsif ( $type eq 'image/gif' ) { # do something with the GIF } # ... }

      It is nice that you've done reading on REST. Perhaps you could enlighten us with some links to some of your favorite such readings... because perhaps one of the things you read would happen to define what "REST" is for the REST of us.

      Even just expanding the acronym "REST" (as you are using it) would be a small help. :)

      "The fact that I'm having trouble accomplishing #1 (i.e., unable to hack mod_rewrite sufficiently that index.pl is hidden, or even that it depends on mod_rewrite)"

      httpd.conf:
      ScriptAliasMatch /rest\b /path/to/index.pl
      http://somewhere.com/rest/candidate/4/vote/yes

      or:

      ScriptAliasMatch /candidate\b /path/to/index.pl
      http://somewhere.com/candidate/4/vote/yes