1JSON::RPC::Common::MarsUhsaelr::CHoTnTtPr(i3b)uted PerlJDSoOcNu:m:eRnPtCa:t:iCoonmmon::Marshal::HTTP(3)
2
3
4
6 JSON::RPC::Common::Marshal::HTTP - Convert HTTP::Request and
7 HTTP::Response to/from JSON::RPC::Common calls and returns.
8
10 version 0.11
11
13 use JSON::RPC::Common::Marshal::HTTP;
14
15 my $m = JSON::RPC::Common::Marshal::HTTP->new;
16
17 my $call = $m->request_to_call($http_request);
18
19 my $res = $call->call($object);
20
21 my $http_response = $m->result_to_response($res);
22
24 This object provides marshalling routines to convert calls and returns
25 to and from HTTP::Request and HTTP::Response objects.
26
28 prefer_get
29 When encoding a call into a request, prefer GET.
30
31 Not reccomended.
32
33 rest_style_methods
34 When encoding a GET request, use REST style URI formatting (the
35 method is part of the path, not a parameter).
36
37 prefer_encoded_get
38 When set and a "params" param exists, decode it as Base 64 encoded
39 JSON and use that as the parameters instead of the query
40 parameters.
41
42 See <http://json-rpc.googlegroups.com/web/json-rpc-over-http.html>.
43
44 user_agent
45 Defaults to the marshal object's class name and the
46 JSON::RPC::Common version number.
47
48 content_type
49 accept_content_type
50 content_types
51 accept_content_types
52 When explicitly set these are the values of the "Content-Type" and
53 "Accept" headers to set.
54
55 Otherwise they will default to "application/json" with
56 calls/returns version 1.0 and 1.1, and "application/json-rpc" with
57 2.0 objects.
58
59 expand
60 Whether or not to use an expander on "GET" style calls.
61
62 expander
63 An instance of CGI::Expand or a look alike to use for "GET"
64 parameter expansion.
65
67 request_to_call $http_request
68 post_request_to_call $http_request
69 get_request_to_call $http_request
70 Convert an HTTP::Request to a JSON::RPC::Common::Procedure::Call.
71 Depending on what style of request it is, "request_to_call" will
72 delegate to a variant method.
73
74 Get requests call "uri_to_call"
75
76 uri_to_call $uri
77 encoded_uri_to_call $uri
78 query_uri_to_call $uri
79 Parse a call from a GET request's URI.
80
81 result_to_response $return
82 Convert a JSON::RPC::Common::Procedure::Return to an
83 HTTP::Response.
84
85 write_result_to_response $result, $response
86 Write the result into an object like Catalyst::Response.
87
88 response_to_result $http_response
89 response_to_result_success $http_response
90 response_to_result_error $http_response
91 Convert an HTTP::Response to a
92 JSON::RPC::Common::Procedure::Return.
93
94 A variant is chosen based on "HTTP::Response/is_success".
95
96 The error handler will ensure that "error" in
97 JSON::RPC::Common::Procedure::Return is set.
98
99 call_to_request $call, %args
100 call_to_get_request $call, %args
101 call_to_post_request $call, %args
102 call_to_uri $call, %args
103 call_to_encoded_uri $call, %args
104 call_to_query_uri $call, %args
105 Convert a call to a request (or just a URI for GET requests).
106
107 The arguments can contain a "uri" parameter, which is the base of
108 the request.
109
110 With GET requests, under "rest_style_methods" that URI's path will
111 be appended, and otherwise parameters will just be added.
112
113 POST requests do not cloen and alter the URI.
114
115 If no URI is provided as an argument, "/" will be used.
116
117 The flags "prefer_get" and "encoded" can also be passed to
118 "call_to_request" to alter the type of request to be generated.
119
120 collapse_query_params
121 expand_query_params
122 Only used for query encoded GET requests. If "expand" is set will
123 cause expansion of the params. Otherwise it's a noop.
124
125 Subclass and override to process query params into RPC params as
126 necessary.
127
128 Note that this is NOT in any of the JSON-RPC specs.
129
131 Yuval Kogman <nothingmuch@woobling.org>
132
134 This software is copyright (c) 2014 by Yuval Kogman and others.
135
136 This is free software; you can redistribute it and/or modify it under
137 the same terms as the Perl 5 programming language system itself.
138
139
140
141perl v5.38.0 2023-07-20JSON::RPC::Common::Marshal::HTTP(3)