Advertisement
Guest User

Untitled

a guest
Jul 19th, 2012
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env perl
  2.  
  3. package HelloWorld;
  4. use Web::Simple;
  5. use Params::Validate qw(:all);
  6.  
  7. use JSON;
  8.  
  9. sub status_ok {
  10.     my %p    = Params::Validate::validate( @_, { entity => 1, }, );
  11.  
  12.     return [ 200, [ 'Content-type', 'application/json' ], [ encode_json($p{entity}) ] ];
  13. }
  14.  
  15. sub status_bad_request {
  16.     my %p    = Params::Validate::validate( @_, { message => { type => SCALAR }, }, );
  17.  
  18.         return [ 400, [ 'Content-type', 'application/json' ], [ encode_json({error => $p{message}}) ] ];
  19. }
  20.  
  21. sub dispatch_request {
  22.     sub (GET) {
  23.         my $resposta = { ola => 'rest', linhas => [ { a => 1}, { a => 2} ] };
  24.  
  25.         return status_ok( entity => $resposta);
  26.     },
  27.     sub (/user/*/...) {
  28.     my ($self, $user_id) = @_;
  29.  
  30.         # essa sub retorna mais 2 subs
  31.         sub (PUT + /endereco/*) {
  32.        my ($self, $endereco) = @_;
  33.  
  34.                 return status_ok( entity => { msg => "endereco do $user_id atualizado para $endereco" } );
  35.         },
  36.         sub (DELETE + /endereco/*) {
  37.        my ($self, $endereco) = @_;
  38.  
  39.                 return status_ok( entity => { msg => "endereco $endereco do $user_id foi removido" } );
  40.         }
  41.   },
  42.     sub () {
  43.         return status_bad_request( message => 'metodo nao suportado'    );
  44.     }
  45. }
  46.  
  47. HelloWorld->run_if_script;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement