Class: Faraday::Request

Inherits:
Struct
  • Object
show all
Extended by:
AutoloadHelper, MiddlewareRegistry
Defined in:
lib/faraday/request.rb,
lib/faraday/autoload.rb

Overview

Used to setup urls, params, headers, and the request body in a sane manner.

@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

Defined Under Namespace

Classes: Authorization, BasicAuthentication, Instrumentation, Multipart, Retry, TokenAuthentication, UrlEncoded

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from AutoloadHelper

all_loaded_constants, autoload_all, load_autoloaded_constants

Methods included from MiddlewareRegistry

fetch_middleware, load_middleware, lookup_middleware, middleware_mutex, register_middleware

Instance Attribute Details

#bodyObject

Returns the value of attribute body

Returns:

  • (Object)

    the current value of body


12
13
14
# File 'lib/faraday/request.rb', line 12

def body
  @body
end

#headersObject

Returns the value of attribute headers

Returns:

  • (Object)

    the current value of headers


12
13
14
# File 'lib/faraday/request.rb', line 12

def headers
  @headers
end

#methodObject

Returns the value of attribute method

Returns:

  • (Object)

    the current value of method


12
13
14
# File 'lib/faraday/request.rb', line 12

def method
  @method
end

#optionsObject

Returns the value of attribute options

Returns:

  • (Object)

    the current value of options


12
13
14
# File 'lib/faraday/request.rb', line 12

def options
  @options
end

#paramsObject

Returns the value of attribute params

Returns:

  • (Object)

    the current value of params


12
13
14
# File 'lib/faraday/request.rb', line 12

def params
  @params
end

#pathObject

Returns the value of attribute path

Returns:

  • (Object)

    the current value of path


12
13
14
# File 'lib/faraday/request.rb', line 12

def path
  @path
end

Class Method Details

.create(request_method) ⇒ Object


24
25
26
27
28
# File 'lib/faraday/request.rb', line 24

def self.create(request_method)
  new(request_method).tap do |request|
    yield(request) if block_given?
  end
end

Instance Method Details

#[](key) ⇒ Object


64
65
66
# File 'lib/faraday/request.rb', line 64

def [](key)
  headers[key]
end

#[]=(key, value) ⇒ Object


68
69
70
# File 'lib/faraday/request.rb', line 68

def []=(key, value)
  headers[key] = value
end

#marshal_dumpObject


72
73
74
75
76
77
78
79
80
81
# File 'lib/faraday/request.rb', line 72

def marshal_dump
  {
    :method  => method,
    :body    => body,
    :headers => headers,
    :path    => path,
    :params  => params,
    :options => options
  }
end

#marshal_load(serialised) ⇒ Object


83
84
85
86
87
88
89
90
# File 'lib/faraday/request.rb', line 83

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

#to_env(connection) ⇒ Object

ENV Keys :method - a symbolized request method (:get, :post) :body - the request body that will eventually be converted to a string. :url - URI instance for the current request. :status - HTTP response status code :request_headers - hash of HTTP Headers to be sent to the server :response_headers - Hash of HTTP headers from the server :parallel_manager - sent if the connection is in parallel mode :request - Hash of options for configuring the request.

:timeout      - open/read timeout Integer in seconds
:open_timeout - read timeout Integer in seconds
:proxy        - Hash of proxy options
  :uri        - Proxy Server URI
  :user       - Proxy server username
  :password   - Proxy server password

:ssl - Hash of options for configuring SSL requests.


108
109
110
111
# File 'lib/faraday/request.rb', line 108

def to_env(connection)
  Env.new(method, body, connection.build_exclusive_url(path, params),
    options, headers, connection.ssl, connection.parallel_manager)
end

#url(path, params = nil) ⇒ Object


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/faraday/request.rb', line 48

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