JSON::RPC::Common::MarUser:Contributed PerlJSON::RPC::Common::Marshal::HTTP(3)NAMEJSON::RPC::Common::Marshal::HTTP - Convert HTTP::Request and
HTTP::Response to/from JSON::RPC::Common calls and returns.
SYNOPSIS
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);
DESCRIPTION
This object provides marshalling routines to convert calls and returns
to and from HTTP::Request and HTTP::Response objects.
ATTRIBUTES
prefer_get
When encoding a call into a request, prefer GET.
Not reccomended.
rest_style_methods
When encoding a GET request, use REST style URI formatting (the
method is part of the path, not a parameter).
prefer_encoded_get
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.
See http://json-rpc.googlegroups.com/web/json-rpc-over-http.html
<http://json-rpc.googlegroups.com/web/json-rpc-over-http.html>.
user_agent
Defaults to the marshal object's class name and the
JSON::RPC::Common version number.
content_type
accept_content_type
content_types
accept_content_types
When explicitly set these are the values of the "Content-Type" and
"Accept" headers to set.
Otherwise they will default to "application/json" with
calls/returns version 1.0 and 1.1, and "application/json-rpc" with
2.0 objects.
expand
Whether or not to use an expander on "GET" style calls.
expander
An instance of CGI::Expand or a look alike to use for "GET"
parameter expansion.
METHODS
request_to_call $http_request
post_request_to_call $http_request
get_request_to_call $http_request
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.
Get requests call "uri_to_call"
uri_to_call $uri
encoded_uri_to_call $uri
query_uri_to_call $uri
Parse a call from a GET request's URI.
result_to_response $return
Convert a JSON::RPC::Common::Procedure::Return to an
HTTP::Response.
write_result_to_response $result, $response
Write the result into an object like Catalyst::Response.
response_to_result $http_response
response_to_result_success $http_response
response_to_result_error $http_response
Convert an HTTP::Response to a
JSON::RPC::Common::Procedure::Return.
A variant is chosen based on "HTTP::Response/is_success".
The error handler will ensure that "error" in
JSON::RPC::Common::Procedure::Return is set.
call_to_request $call, %args
call_to_get_request $call, %args
call_to_post_request $call, %args
call_to_uri $call, %args
call_to_encoded_uri $call, %args
call_to_query_uri $call, %args
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.
With GET requests, under "rest_style_methods" that URI's path will
be appended, and otherwise parameters will just be added.
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.
collapse_query_params
expand_query_params
Only used for query encoded GET requests. If "expand" is set will
cause expansion of the params. Otherwise it's a noop.
Subclass and override to process query params into RPC params as
necessary.
Note that this is NOT in any of the JSON-RPC specs.
perl v5.14.12009-08-0JSON::RPC::Common::Marshal::HTTP(3)