Take me over?
NAME
JSON::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.
- 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
andAccept
headers to set.Otherwise they will default to
application/json
with calls/returns version 1.0 and 1.1, andapplication/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
- request_to_call_post
- request_to_call_get
- request_to_call_get_encoded
- request_to_call_get_query
-
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. - result_to_response
-
Convert a JSON::RPC::Common::Procedure::Return to an HTTP::Response.
- response_to_result
- response_to_result_success
- response_to_result_error
-
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
andencoded
can also be passed tocall_to_request
to alter the type of request to be generated. - result_to_response $result
- write_result_to_response $result, $response
-
Either create an HTTP::Response or write the result into an object like Catalyst::Response.
- 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.
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 439:
'=item' outside of any '=over'
- Around line 491:
You forgot a '=back' before '=head1'