class Faraday::Request
Request
represents a single HTTP request for a Faraday
adapter to make. @see lib/faraday/request.rb Original class location
Used to setup URLs, params, headers, and the request body in a sane manner.
@example
@connection.post do |req| req.url 'http://localhost', 'a' => '1' # 'http://localhost?a=1' req.headers['b'] = '2' # Header req.params['c'] = '3' # GET Param req['b'] = '2' # also Header req.body = 'abc' end
@!attribute method
@return [Symbol] the HTTP method of the Request
@!attribute path
@return [URI, String] the path
@!attribute params
@return [Hash] query parameters
@!attribute headers
@return [Faraday::Utils::Headers] headers
@!attribute body
@return [Hash] body
@!attribute options
@return [RequestOptions] options
rubocop:disable Style/StructInheritance
Public Class Methods
Source
# File lib/faraday/request.rb, line 53 def self.create(request_method) new(request_method).tap do |request| yield(request) if block_given? end end
@param request_method [String] @yield [request] for block customization, if block given @yieldparam request [Request] @return [Request]
Public Instance Methods
Source
# File lib/faraday/request.rb, line 104 def [](key) headers[key] end
@param key [Object] key to look up in headers @return [Object] value of the given header name
Source
# File lib/faraday/request.rb, line 110 def []=(key, value) headers[key] = value end
@param key [Object] key of header to write @param value [Object] value of header
Source
# File lib/faraday/request.rb, line 73 def headers=(hash) if headers headers.replace hash else super end end
Replace request headers, preserving the existing hash type.
@param hash [Hash] new headers
Source
# File lib/faraday/request.rb, line 117 def marshal_dump { method: method, body: body, headers: headers, path: path, params: params, options: options } end
Marshal serialization support.
@return [Hash] the hash ready to be serialized in Marshal.
Source
# File lib/faraday/request.rb, line 131 def marshal_load(serialised) self.method = serialised[:method] self.body = serialised[:body] self.headers = serialised[:headers] self.path = serialised[:path] self.params = serialised[:params] self.options = serialised[:options] end
Marshal serialization support. Restores the instance variables according to the serialised
. @param serialised [Hash] the serialised object.
Source
# File lib/faraday/request.rb, line 62 def params=(hash) if params params.replace hash else super end end
Replace params, preserving the existing hash type.
@param hash [Hash] new params
Source
Source
# File lib/faraday/request.rb, line 86 def url(path, params = nil) if path.respond_to? :query if (query = path.query) path = path.dup path.query = nil end else anchor_index = path.index('#') path = path.slice(0, anchor_index) unless anchor_index.nil? path, query = path.split('?', 2) end self.path = path self.params.merge_query query, options.params_encoder self.params.update(params) if params end
Update path and params.
@param path [URI, String] @param params [Hash, nil] @return [void]