JSON.pm 578 B

123456789101112131415161718192021222324252627282930
  1. package Trog::Routes::JSON;
  2. use strict;
  3. use warnings;
  4. no warnings 'experimental';
  5. use feature qw{signatures};
  6. use JSON::MaybeXS();
  7. our %routes = (
  8. '/api/catalog' => {
  9. method => 'GET',
  10. callback => \&catalog,
  11. parameters => [],
  12. },
  13. );
  14. my $contenttype = "Content-type:application/json;";
  15. sub catalog ($query, $input, $=) {
  16. my $enc = JSON::MaybeXS->new( utf8 => 1 );
  17. my %rcopy = %{\%routes};
  18. foreach my $r (keys(%rcopy)) {
  19. delete $rcopy{$r}{callback}
  20. }
  21. return [200,[$contenttype],[$enc->encode(\%rcopy)]];
  22. }
  23. 1;