class SwaggerApi::Generator
Public Instance Methods
components()
click to toggle source
# File lib/swagger_api.rb, line 27 def components { responses: responses, schemas: Components.new(controllers: config.controllers).create, requestBodies: RequestBodies.new(controllers: config.controllers).create, securitySchemes: security_schemes } end
config()
click to toggle source
# File lib/swagger_api.rb, line 36 def config @yaml_config ||= JSON.parse(YAML.load_file("#{Rails.root}/config/swagger.yml").to_json, object_class: OpenStruct) end
create()
click to toggle source
# File lib/swagger_api.rb, line 16 def create @config ||= { openapi: '3.0.0', security: [{ api_key: [] }], info: info, servers: [{ url: server_url }], paths: Paths.new(controllers: config.controllers).create, components: components } end
default_bad_request_response()
click to toggle source
# File lib/swagger_api.rb, line 90 def default_bad_request_response { BadRequest: { description: 'Bad Request', content: { 'application/json; charset=utf-8' => { schema: { example: ['The field name is invalid.', 'The id must be present'], type: 'array', items: { type: 'string' } } } } } } end
default_not_found_response()
click to toggle source
# File lib/swagger_api.rb, line 58 def default_not_found_response { NotFound: { description: 'The specified resource was not found', content: { 'application/json; charset=utf-8' => { schema: { type: 'string', example: 'Not Found' } } } } } end
default_responses()
click to toggle source
# File lib/swagger_api.rb, line 54 def default_responses {}.merge(default_not_found_response).merge(default_unauthorized_response).merge(default_bad_request_response) end
info()
click to toggle source
# File lib/swagger_api.rb, line 109 def info { version: config.info.version, title: config.info.title, description: config.info.description } end
json()
click to toggle source
# File lib/swagger_api.rb, line 12 def json create.to_json end
prettify()
click to toggle source
# File lib/swagger_api.rb, line 8 def prettify JSON.pretty_generate(JSON.parse(json)) end
responses()
click to toggle source
# File lib/swagger_api.rb, line 50 def responses @responses ||= default_responses end
security_schemes()
click to toggle source
# File lib/swagger_api.rb, line 40 def security_schemes { api_key: { type: 'apiKey', name: 'Authorization', in: 'header' } } end
server_url()
click to toggle source
# File lib/swagger_api.rb, line 117 def server_url return unless config.servers.respond_to?(Rails.env) config.servers.send(Rails.env).url end