JSON::RPC::Common::Marshal::HTTP - Convert HTTP::Request and HTTP::Response to/from JSON::RPC::Common calls and returns.
use JSON::RPC::Common::Marshal::HTTP; my $m = JSON::RPC::Common::Marshal::HTTP->new; my $call = $m->request_to_call($http_request); my $res = $call->call($object); my $http_response = $m->result_to_response($res);
This object provides marshalling routines to convert calls and returns to and from HTTP::Request and HTTP::Response objects.
When encoding a call into a request, prefer GET.
Not reccomended.
When encoding a GET request, use REST style URI formatting (the method is part of the path, not a parameter).
When set and a params param exists, decode it as Base 64 encoded JSON and use that as the parameters instead of the query parameters.
params
See http://json-rpc.googlegroups.com/web/json-rpc-over-http.html.
Defaults to the marshal object's class name and the JSON::RPC::Common version number.
When explicitly set these are the values of the Content-Type and Accept headers to set.
Content-Type
Accept
Otherwise they will default to application/json with calls/returns version 1.0 and 1.1, and application/json-rpc with 2.0 objects.
application/json
application/json-rpc
Whether or not to use an expander on GET style calls.
GET
An instance of CGI::Expand or a look alike to use for GET parameter expansion.
Convert an HTTP::Request to a JSON::RPC::Common::Procedure::Call. Depending on what style of request it is, request_to_call will delegate to a variant method.
request_to_call
Get requests call uri_to_call
uri_to_call
Parse a call from a GET request's URI.
Convert a JSON::RPC::Common::Procedure::Return to an HTTP::Response.
Write the result into an object like Catalyst::Response.
Convert an HTTP::Response to a JSON::RPC::Common::Procedure::Return.
A variant is chosen based on HTTP::Response/is_success.
HTTP::Response/is_success
The error handler will ensure that "error" in JSON::RPC::Common::Procedure::Return is set.
Convert a call to a request (or just a URI for GET requests).
The arguments can contain a uri parameter, which is the base of the request.
uri
With GET requests, under rest_style_methods that URI's path will be appended, and otherwise parameters will just be added.
rest_style_methods
POST requests do not cloen and alter the URI.
If no URI is provided as an argument, / will be used.
/
The flags prefer_get and encoded can also be passed to call_to_request to alter the type of request to be generated.
prefer_get
encoded
call_to_request
Only used for query encoded GET requests. If expand is set will cause expansion of the params. Otherwise it's a noop.
expand
Subclass and override to process query params into RPC params as necessary.
Note that this is NOT in any of the JSON-RPC specs.
To install JSON::RPC::Common, copy and paste the appropriate command in to your terminal.
cpanm
cpanm JSON::RPC::Common
CPAN shell
perl -MCPAN -e shell install JSON::RPC::Common
For more information on module installation, please visit the detailed CPAN module installation guide.