SHOW:
|
|
- or go back to the newest paste.
| 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 (GET + /user/*) {
|
| 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; |