Dancer::RPCPlugin::DefaultRoute - Catch bad-requests and send error-response
use Dancer::RPCPlugin::DefaultRoute; setup_default_route();
Implements default endpoint to generate -32601 'method not found' or 'path not found' error_response for non existing endpoints
Installs a Dancer route-handler for any qr{.+} which tries to return an appropriate error response to the requestor.
any qr{.+}
All responeses will have status: 200 OK
The content-type (and body) of the request determine the error-response:
If the body is valid XMLRPC, the response is an XMLRPC-fault:
faultCode => -32601 faultString => "Method '%s' not found"
If the body is not valid XMLRPC, the response is an XMLRPC-fault:
faultCode => -32600 faultString => "Invaild xml-rpc. Not configming to spec: $@"
If the body is valid JSONRPC (ie. is has a 'jsonrpc': '2.0' field/value), the response is a JSONRPC-error:
code => -32601 message => "Method '%s' not found"
If the body is not valid JSONRPC, the response is a generic json struct:
'error': { 'code': -32601, 'message': "Method '$request->path' not found" }
Any other content-type is outside the scope of the service. We can respond in any way we like. For the moment it will be:
status(404) content_type('text/plain') body => "Error! '$request->path' was not found for '$request->content_type'"
(c) MMXX - Abe Timmerman <abetim@cpan.org>
To install Dancer::Plugin::RPC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Dancer::Plugin::RPC
CPAN shell
perl -MCPAN -e shell install Dancer::Plugin::RPC
For more information on module installation, please visit the detailed CPAN module installation guide.