Raku Land

PowerNap

cpan:SAMGWISE

Build Status

NAME

PowerNap - A short but strict REST service framework

SYNOPSIS

use PowerNap;

DESCRIPTION

PowerNap is simple way to write strict and concise restful web APIs.

The core of PowerNap is the PowerNap::Controller. This role provides a number of default methods and a verb dispatcher. Given a PowerNap::Verb Enum and a Map the dispatcher routes to the relevant method and attempts to call the method with the given Map. If there is a type mismatch or missing required pairs a 501 response will be returned, 500 if any other exception is thrown and the method controlls any other responses.

All returned values are classes which implement the PowerNap::Result role. These result objects can be introspected as to their error code, if they are an error and impliment an .ok(Str --> Map) method to allow localised error messages in chained method calls. All result objects implemt the Serialise::Map (see), as such calling .to-map(--> Map).&to-json will provide a serialised response.

When selecting response codes for your controller methods you should consider recent HTTP RFCs or similar.

AUTHOR

Sam Gillespie

COPYRIGHT AND LICENSE

Copyright 2018 Sam Gillespie

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.