Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Restful on web service

Restful on web service

This example uses backbone.js and express.js.

Avatar for SparrowJang

SparrowJang

March 20, 2013
Tweet

Other Decks in Programming

Transcript

  1. HTTP Method method Data operate description GET read Get a

    resource. POST create Create a resource without id. PUT update Update a resource or create a resource with id if not existed. DELETE delete Delete a resource
  2. Restful URI action method uri show GET http://example/users/{id} list GET

    http://example/users create POST http://example/users update PUT http://example/users/{id} delete DELETE http://example/users/{id}
  3. Express implements restful action code list app.get('/users', function( req, res

    ){ doSomething(); }); show app.get('/users/:id', function( req, res ){ doSomething(); }); create app.post('/users/:id', function( req, res ){ doSomething(); }); update app.put('/users/:id', function( req, res ){ doSomething(); }); delete app.delete('/users/:id', function( req, res ){ doSomething(); });
  4. Show example app.get('/users/:id', function( req, res ){ var id =

    req.params.id, result; if( id ) result = api.fetch( id ); res.send( result ); });
  5. Backbone.js implements restful action code list collection.fetch(); show model.fetch(); create

    collection.create({name:"Peter"},{wait: true}); model.save({name:"Peter"},{wait: true}); update model.save({name:"Peter"}); delete model.destroy();
  6. Model example var User = Backbone.Model.extend({ //set path urlRoot :

    '/users', //validate attrs by set or save validate:function( attrs, options ){ if( !attrs.name ) return "name is null."; }, ...
  7. Response data from server Get /users/1 { "result": { "success":

    true }, "user": { "id": 1, "name": "Tom" } }
  8. ... parse:function( response, options ){ //from server if( response.result &&

    response.result.success ) return response.user; //from collection else if( !response.result ) return response } });
  9. Response data from server Get /users { "result": { "success":

    true }, "users": [ {"id": 1,"name": "Tom"}, {"id": 2,"name": "John"}, ...] }
  10. Collection example var Users = Backbone.Collection.extend({ url: '/users', model:User, parse:function(

    response, options ){ if( response.result.success ) return response.users; } });