fluke/devops-service/app/api3/handlers/api-docs.rb
Tim Lianov 03dc3d8d99 v3
2018-04-04 22:44:39 +03:00

110 lines
3.1 KiB
Ruby

require 'swagger/blocks'
require_relative "request_handler"
require 'app/api3/docs/devops_error'
require 'app/api3/docs/devops_response'
require 'app/api3/docs/server_model'
require 'app/api3/docs/provider'
require 'app/api3/docs/job_task'
require 'app/api3/docs/chef'
require 'app/api3/docs/filter'
require 'app/api3/docs/image'
require 'app/api3/docs/key'
require 'app/api3/docs/role'
require 'app/api3/docs/user'
require 'app/api3/docs/project'
require 'app/api3/docs/server'
module Devops
module API3
module Handler
class ApiDocs < RequestHandler
include Swagger::Blocks
swagger_root do
key :swagger, '2.0'
info do
key :version, '3.0'
key :title, 'Devops API'
key :description, 'Devops API v3 specification'
license do
key :name, 'MIT'
key :url, 'https://opensource.org/licenses/MIT'
end
end
tag do
key :name, 'provider'
key :description, 'Providers operations'
end
tag do
key :name, 'task'
key :description, 'Job tasks operations'
end
tag do
key :name, 'chef'
key :description, 'Chef operations'
end
tag do
key :name, 'filter'
key :description, 'Filter operations'
end
tag do
key :name, 'image'
key :description, 'Image operations'
end
tag do
key :name, 'key'
key :description, 'SSH keys operations'
end
tag do
key :name, 'role'
key :description, 'User roles operations'
end
tag do
key :name, 'user'
key :description, 'Users operations'
end
tag do
key :name, 'project'
key :description, 'Projects operations'
end
tag do
key :name, 'server'
key :description, 'Servers operations'
end
# key :host, 'petstore.swagger.wordnik.com'
key :basePath, DevopsConfig.config[:url_prefix] + '/v3'
key :scheme, 'http'
key :consumes, ['application/json']
key :produces, ['application/json']
end
# A list of all classes that have swagger_* declarations.
SWAGGERED_CLASSES = [
Devops::API3::Docs::ProviderRoutes,
Devops::API3::Docs::JobTaskRoutes,
Devops::API3::Docs::ChefRoutes,
Devops::API3::Docs::FilterRoutes,
Devops::API3::Docs::ImageRoutes,
Devops::API3::Docs::KeyRoutes,
Devops::API3::Docs::RolesRoutes,
Devops::API3::Docs::UserRoutes,
Devops::API3::Docs::ProjectRoutes,
Devops::API3::Docs::ServerRoutes,
Devops::API3::Docs::DevopsError,
Devops::API3::Docs::DevopsResponse,
Devops::API3::Docs::ServerModel,
self
].freeze
def index
Swagger::Blocks.build_root_json(SWAGGERED_CLASSES)
end
end
end
end
end