Class: OpenapiFirst::Responder

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi_first/responder.rb

Direct Known Subclasses

OperationResolver

Instance Method Summary collapse

Constructor Details

#initialize(spec:, namespace:, resolver: FindHandler.new(spec, namespace)) ⇒ Responder

Returns a new instance of Responder.



9
10
11
12
# File 'lib/openapi_first/responder.rb', line 9

def initialize(spec:, namespace:, resolver: FindHandler.new(spec, namespace))
  @resolver = resolver
  @namespace = namespace
end

Instance Method Details

#call(env) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/openapi_first/responder.rb', line 14

def call(env)
  operation = env[OpenapiFirst::OPERATION]
  res = Rack::Response.new
  handler = find_handler(operation)
  result = handler.call(env[INBOX], res)
  res.write serialize(result) if result && res.body.empty?
  res[Rack::CONTENT_TYPE] ||= operation.content_type_for(res.status)
  res.finish
end