class Rack::JsonSchema::RequestValidation

Public Class Methods

new(app, ignore_invalid_content_type: false, ignore_missing_path: false, schema: nil) click to toggle source

Behaves as a rack-middleware @param app [Object] Rack application @param ignore_invalid_content_type [false, true] Ignore requests with non json content-type @param ignore_missing_path [false, true] Ignore requests not defined in schema @param schema [Hash] Schema object written in JSON schema format @raise [JsonSchema::SchemaError]

# File lib/rack/json_schema/request_validation.rb, line 10
def initialize(app, ignore_invalid_content_type: false, ignore_missing_path: false, schema: nil)
  @app = app
  @ignore_invalid_content_type = ignore_invalid_content_type
  @ignore_missing_path = ignore_missing_path
  @schema = Schema.new(schema)
end

Public Instance Methods

call(env) click to toggle source

@raise [Rack::JsonSchema::RequestValidation::Error] Raises if given request is invalid to JSON Schema @param env [Hash] Rack env

# File lib/rack/json_schema/request_validation.rb, line 19
def call(env)
  Validator.call(
    env: env,
    ignore_invalid_content_type: @ignore_invalid_content_type,
    ignore_missing_path: @ignore_missing_path,
    schema: @schema
  )
  @app.call(env)
end