class Rack::ServiceApiVersioning::ApiVersionRedirector
Returns an HTTP 302 response with cleaned-up environment and `Location` header.
Constants
- DEFAULT_STATUS
Attributes
app[R]
env[R]
Public Class Methods
new(app)
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 15 def initialize(app) @app = app @env = nil self end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 21 def call(env) @env = env response end
Private Instance Methods
api_version()
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 33 def api_version api_version_data[:api_version] end
api_version_data()
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 37 def api_version_data JSON.parse(env['COMPONENT_API_VERSION_DATA'], symbolize_names: true) end
body()
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 41 def body 'Please resend the request to ' \ "<a href=\"#{location}\">#{location}</a>" \ ' without caching it.' end
headers()
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 47 def headers { 'API-Version' => api_version, 'Location' => location } end
location()
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 51 def location BuildRedirectUriFromEnv.call(env) end
response()
click to toggle source
# File lib/rack/service_api_versioning/api_version_redirector.rb, line 55 def response Rack::Response.new(body, DEFAULT_STATUS, headers).finish end