Jifty::Manual::TutorialRest.3pm

Langue: en

Version: 2007-12-26 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Jifty::Manual::TutorialRest - Web Services

DESCRIPTION

This builds on Jifty::Manual::Tutorial, so make sure you have a running jifty that roughly resembles the step-by-step from there.

SETUP

You must add this to your site_config.yml
   framework:
     Plugins:
       - REST: {}
 
 

See Jifty::Plugin::REST.

The commands assume that you have LWP installed with the GET alias. If not, you'll need to use the longhand lwp-request -m GET, or curl, or your browser.

help

Make sure it is working:
   $ GET http://localhost:8888/=/help
 
   Accessing resources:
   ...
 
 

You should see some text describing the services, not html (that's longhand for 404.) Check the config and restart the server.

GET

Just list the models.
   $ GET http://localhost:8888/=/model.yml
   ---
   - MyWeblog.Model.Post
 
 

List the Post schema.

   $ GET http://localhost:8888/=/model/Post.yml
   ---
   body:
     label: Content
     name: body
     readable: 1
     sort_order: 1
     type: text
     writable: 1
   id:
     mandatory: 1
     name: id
     readable: 1
     type: serial
     writable: 0
   title:
     default: Untitled post
     label: Title
     name: title
     readable: 1
     sort_order: 0
     type: text
     writable: 1
 
 

You did make some posts, right?

   $ GET http://localhost:8888/=/model/Post/id.yml
   ---
   - 1
   - 2
 
 

Dump the data:

   $ GET http://localhost:8888/=/model/Post/id/1.yml
   ---
   body: 'This is my post, the content of which is this, which is mine.'
   id: 1
   title: my first post
 
   $ GET http://localhost:8888/=/model/Post/id/2.yml
   ---
   body: "Content of another post.  Got to go, the cat's on fire."
   id: 2
   title: post deux
 
 

POST

TODO not working

Actually, it looks like it is not supposed to work this way. Why not?

   $ echo '---
   body: "A post via web services"
   id: 3
   title: "posting from the command-line"
   ' | lwp-request -m POST http://localhost:8888/=/model/Post.yml
   POST http://localhost:8888/=/model/Post/id/3.yml --> 404 Not Found
 
 

PUT

TODO not working
   $ echo '---
   title: "posting from the cli"
   ' | lwp-request -m PUT http://localhost:8888/=/model/Post/3.yml
   500 Can't read entity body: Connection reset by peer
 
 

DELETE

   $  lwp-request -m DELETE http://localhost:8888/=/model/Post/id/3.yml
   ---
   content: {}
   error: ~
   field_errors: {}
   field_warnings: {}
   message: Deleted
   success: 1