module OpenapiFirst

Constants

HANDLER
INBOX
OPERATION
PARAMETERS
REQUEST_BODY
VERSION

Public Class Methods

app( spec, namespace:, router_raise_error: false, request_validation_raise_error: false, response_validation: false ) click to toggle source
# File lib/openapi_first.rb, line 33
def self.app(
  spec,
  namespace:,
  router_raise_error: false,
  request_validation_raise_error: false,
  response_validation: false
)
  spec = OpenapiFirst.load(spec) if spec.is_a?(String)
  App.new(
    nil,
    spec,
    namespace: namespace,
    router_raise_error: router_raise_error,
    request_validation_raise_error: request_validation_raise_error,
    response_validation: response_validation
  )
end
env() click to toggle source
# File lib/openapi_first.rb, line 22
def self.env
  ENV['RACK_ENV'] || ENV['HANAMI_ENV'] || ENV['RAILS_ENV']
end
load(spec_path, only: nil) click to toggle source
# File lib/openapi_first.rb, line 26
def self.load(spec_path, only: nil)
  content = YAML.load_file(spec_path)
  resolved = OasParser::Parser.new(spec_path, content).resolve
  resolved['paths'].filter!(&->(key, _) { only.call(key) }) if only
  Definition.new(resolved, spec_path)
end
middleware( spec, namespace:, router_raise_error: false, request_validation_raise_error: false, response_validation: false ) click to toggle source
# File lib/openapi_first.rb, line 51
def self.middleware(
  spec,
  namespace:,
  router_raise_error: false,
  request_validation_raise_error: false,
  response_validation: false
)
  spec = OpenapiFirst.load(spec) if spec.is_a?(String)
  AppWithOptions.new(
    spec,
    namespace: namespace,
    router_raise_error: router_raise_error,
    request_validation_raise_error: request_validation_raise_error,
    response_validation: response_validation
  )
end