class OpenApi::DSL::Components
Public Class Methods
new()
click to toggle source
# File lib/open_api/dsl/components.rb, line 10 def initialize merge!(%i[ schemas responses parameters examples requestBodies securitySchemes ].map { |k| [ k, { } ] }.to_h) end
Public Instance Methods
api_key(scheme_name, field:, in: 'header', **other_info)
click to toggle source
# File lib/open_api/dsl/components.rb, line 83 def api_key scheme_name, field:, in: 'header', **other_info security_scheme scheme_name, { type: 'apiKey', name: field, in: binding.local_variable_get(:in), **other_info } end
base_auth(scheme_name, other_info = { })
click to toggle source
# File lib/open_api/dsl/components.rb, line 71 def base_auth scheme_name, other_info = { } security_scheme scheme_name, { type: 'http', scheme: 'basic', **other_info } end
bearer_auth(scheme_name, format = 'JWT', other_info = { })
click to toggle source
# File lib/open_api/dsl/components.rb, line 77 def bearer_auth scheme_name, format = 'JWT', other_info = { } security_scheme scheme_name, { type: 'http', scheme: 'bearer', bearerFormat: format, **other_info } end
example(component_key, examples_hash)
click to toggle source
# File lib/open_api/dsl/components.rb, line 21 def example component_key, examples_hash self[:examples][component_key] = ExampleObj.new(examples_hash, multiple: true).process end
param(component_key, param_type, name, type, required, schema = { })
click to toggle source
# File lib/open_api/dsl/components.rb, line 27 def param component_key, param_type, name, type, required, schema = { } return unless schema = process_schema_input(type, schema, name) self[:parameters][component_key] = ParamObj.new(name, param_type, type, required, schema).process end
process_objs()
click to toggle source
# File lib/open_api/dsl/components.rb, line 89 def process_objs self[:requestBodies].each { |key, body| self[:requestBodies][key] = body.process } self[:responses].each { |code, response| self[:responses][code] = response.process } self.delete_if { |_, v| v.blank? } end
request_body(component_key, required, media_type, data: { })
click to toggle source
# File lib/open_api/dsl/components.rb, line 39 def request_body component_key, required, media_type, data: { }, desc: '', **options (self[:requestBodies][component_key] ||= RequestBodyObj.new(required, desc)).absorb(media_type, { data: data, **options }) end
response(component_key, desc, media_type = nil, headers: { })
click to toggle source
# File lib/open_api/dsl/components.rb, line 52 def response component_key, desc, media_type = nil, headers: { }, data: { }, **options (self[:responses][component_key] ||= ResponseObj.new(desc)).absorb(desc, media_type, headers: headers, data: data, **options) end
schema(component_key, type = nil, **schema)
click to toggle source
# File lib/open_api/dsl/components.rb, line 14 def schema component_key, type = nil, **schema return unless schema = process_schema_input(type, schema, component_key, model: component_key) self[:schemas][component_key.to_s.to_sym] = schema.process end
security_scheme(scheme_name, other_info)
click to toggle source
# File lib/open_api/dsl/components.rb, line 62 def security_scheme scheme_name, other_info# = { } other_info[:description] = other_info.delete(:desc) if other_info[:desc] self[:securitySchemes][scheme_name] = other_info end
Also aliased as: auth_scheme