Provided by: libjson-rpc-common-perl_0.11-2_all
NAME
JSON::RPC::Common::Marshal::HTTP - Convert HTTP::Request and HTTP::Response to/from JSON::RPC::Common calls and returns.
VERSION
version 0.11
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" 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.
AUTHOR
Yuval Kogman <nothingmuch@woobling.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Yuval Kogman and others. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.