Provided by: libjson-rpc-common-perl_0.11-2_all bug

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.