Sha256: afbd97d05f84492e5cf50e51af7c742d78b7acc3cc56ca4229f24f95255e37b9
Contents?: true
Size: 1.91 KB
Versions: 4
Compression:
Stored size: 1.91 KB
Contents
module Symphonia class ApiController < ApplicationController include ::Swagger::Blocks # https://github.com/fotinakis/swagger-blocks swagger_component do security_scheme "token" do key :type, "apiKey" key :name, "key" key :in, "header" end end swagger_root openapi: "3.0.0" do info do key :version, '2.0.0' key :title, "API" key :description, "" contact do key :name, 'Lukas Pokorny' key :email, 'pokorny@luk4s.cz' end license do key :name, 'GPLv3' end end security do key :token, [] end tag name: "admin" do key :description, "endpoints required `admin`" end tag name: "User" do end end # A list of all classes that have swagger_* declarations. SWAGGERED_CLASSES = [ UsersController, User, Swagger::ErrorModel, ] def self.for_documentation SWAGGERED_CLASSES + Symphonia::ApiController::SWAGGERED_CLASSES end # @param [String] name of tag # @param [String] description def self.add_tag(name:, description:) swagger_root_node.tag name: name, description: description end # @return [Swagger::Blocks::Nodes::RootNode] def self.swagger_root_node node = Symphonia::ApiController.send(:_swagger_nodes) node[:root_node] end # @param [String] text def self.api_title=(text) swagger_root_node.data[:info].data[:title] = text end # @param [String] text def self.api_description=(text) swagger_root_node.data[:info].data[:description] = text end def index json = ::Swagger::Blocks.build_root_json(self.class.for_documentation + [self.class]) respond_to do |format| format.yaml { render plain: json.deep_stringify_keys.to_yaml } format.json { render json: json } end end end end
Version data entries
4 entries across 4 versions & 1 rubygems