The mist is clearing ...
… but I’m not sure yet whether what’s being revealed is a bright sun, a dense forest, or more mist. In any case, it’s an interesting journey, and on the whole, enlightening.
I’m trying to understand more about REST. To that end, I’ve just written a little RESTful interface to RT (Request Tracker), in the form of an Apache mod_perl handler, so that I can create new and correspond on existing tickets via a simple interface that I can call from my other apps.
Creating a ticket:
POST /ticket
(queue, subject, email, and initial ticket query supplied in body)
...
201 Created
Location: /ticket/42
Corresponding on a ticket:
PUT /ticket/42
(correspondence supplied in body, will be appended to the ticket history)
...
200 OK
(Hmm, perhaps that should that be PUT to /ticket/42/history
, returning a 201 with a unique URI for that particular piece of correspondence, e.g. /ticket/42/history/20020715115442
).
Getting info on a ticket:
GET /ticket/42
or
GET /ticket/42/basics
or
GET /ticket/42/history
...
200 OK
(ticket info)
I’m glad I had my copy of the excellent Writing Apache Modules with Perl and C close to hand, to remind me of things like $r->custom_response()
and Apache::Constants->export(qw(HTTP_CREATED))
.