Class: Grape::Request

Inherits:
Rack::Request
  • Object
show all
Defined in:
lib/grape/request.rb

Constant Summary collapse

KNOWN_HEADERS =
%w[
  Accept
  Accept-CH
  Accept-Encoding
  Accept-Language
  Accept-Patch
  Accept-Ranges
  Accept-Version
  Access-Control-Allow-Credentials
  Access-Control-Allow-Headers
  Access-Control-Allow-Methods
  Access-Control-Allow-Origin
  Access-Control-Expose-Headers
  Access-Control-Max-Age
  Age
  Allow
  Alt-Svc
  Authorization
  Cache-Control
  Client-Ip
  Connection
  Content-Disposition
  Content-Encoding
  Content-Language
  Content-Length
  Content-Location
  Content-MD5
  Content-Range
  Content-Security-Policy
  Content-Security-Policy-Report-Only
  Content-Type
  Cookie
  Date
  Delta-Base
  Dnt
  ETag
  Expect-CT
  Expires
  Feature-Policy
  Forwarded
  Host
  If-Modified-Since
  If-None-Match
  IM
  Last-Modified
  Link
  Location
  NEL
  P3P
  Permissions-Policy
  Pragma
  Preference-Applied
  Proxy-Authenticate
  Public-Key-Pins
  Range
  Referer
  Referrer-Policy
  Refresh
  Report-To
  Retry-After
  Sec-Fetch-Dest
  Sec-Fetch-Mode
  Sec-Fetch-Site
  Sec-Fetch-User
  Server
  Set-Cookie
  Status
  Strict-Transport-Security
  Timing-Allow-Origin
  Tk
  Trailer
  Transfer-Encoding
  Upgrade
  Upgrade-Insecure-Requests
  User-Agent
  Vary
  Version
  Via
  Warning
  WWW-Authenticate
  X-Accel-Buffering
  X-Accel-Charset
  X-Accel-Expires
  X-Accel-Limit-Rate
  X-Accel-Mapping
  X-Accel-Redirect
  X-Access-Token
  X-Auth-Request-Access-Token
  X-Auth-Request-Email
  X-Auth-Request-Groups
  X-Auth-Request-Preferred-Username
  X-Auth-Request-Redirect
  X-Auth-Request-Token
  X-Auth-Request-User
  X-Cascade
  X-Client-Ip
  X-Content-Duration
  X-Content-Security-Policy
  X-Content-Type-Options
  X-Correlation-Id
  X-Download-Options
  X-Forwarded-Access-Token
  X-Forwarded-Email
  X-Forwarded-For
  X-Forwarded-Groups
  X-Forwarded-Host
  X-Forwarded-Port
  X-Forwarded-Preferred-Username
  X-Forwarded-Proto
  X-Forwarded-Scheme
  X-Forwarded-Ssl
  X-Forwarded-Uri
  X-Forwarded-User
  X-Frame-Options
  X-HTTP-Method-Override
  X-Permitted-Cross-Domain-Policies
  X-Powered-By
  X-Real-IP
  X-Redirect-By
  X-Request-Id
  X-Requested-With
  X-Runtime
  X-Sendfile
  X-Sendfile-Type
  X-UA-Compatible
  X-WebKit-CS
  X-XSS-Protection
].each_with_object({}) do |header, response|
  response["HTTP_#{header.upcase.tr('-', '_')}"] = header
end.freeze

Instance Method Summary collapse

Constructor Details

#initialize(env, build_params_with: nil) ⇒ Request

Returns a new instance of Request.



142
143
144
145
# File 'lib/grape/request.rb', line 142

def initialize(env, build_params_with: nil)
  super(env)
  @params_builder = Grape::ParamsBuilder.params_builder_for(build_params_with || Grape.config.param_builder)
end

Instance Method Details

#cookiesObject



155
156
157
# File 'lib/grape/request.rb', line 155

def cookies
  @cookies ||= Grape::Cookies.new(-> { rack_cookies })
end

#grape_routing_argsObject

needs to be public until extensions param_builder are removed



160
161
162
163
# File 'lib/grape/request.rb', line 160

def grape_routing_args
  # preserve version from query string parameters
  env[Grape::Env::GRAPE_ROUTING_ARGS]&.except(:version, :route_info) || {}
end

#headersObject



151
152
153
# File 'lib/grape/request.rb', line 151

def headers
  @headers ||= build_headers
end

#paramsObject



147
148
149
# File 'lib/grape/request.rb', line 147

def params
  @params ||= make_params
end

#rack_cookiesObject



140
# File 'lib/grape/request.rb', line 140

alias rack_cookies cookies

#rack_paramsObject



139
# File 'lib/grape/request.rb', line 139

alias rack_params params