多个码头在一个项目与rswag轨道



我尝试为我的api创建2个文档。我在路由中有2个命名空间,我需要为我的第一个命名空间和第二个命名空间创建2个文档。在请求测试中,他们被分为2个文件夹。我怎么能自动生成这2个文档,我需要在路由文件中写什么?

在路由中,我为rswag引擎写了2个挂载,但我不知道我需要用我的swagger做什么。yml文件

过了一段时间,我这样做了:

swagger_helper.rb:

docs = { 'v1/robots_api.yaml' => {
openapi: '3.0.1',
info: {
title: 'API V1',
version: 'v1'
},
paths: {},
components: {
securitySchemes: {
Bearer: {
description: 'JWT key necessary to use API calls',
type: :apiKey,
name: 'Authorization',
in: :header
}
}
},
servers: [
{
url: ENV.fetch('ROUTES_HOST'),
variables: {
defaultHost: {
default: ENV.fetch('ROUTES_HOST')
}
}
}
]

}}

if Rails.env.development?
docs.merge!({ 'v1/swagger.yaml' => {
openapi: '3.0.1',
info: {
title: 'API V1',
version: 'v1'
},
paths: {},
components: {
securitySchemes: {
Bearer: {
description: 'JWT key necessary to use API calls',
type: :apiKey,
name: 'Authorization',
in: :header
}
}
},
servers: [
{
url: ENV.fetch('ROUTES_HOST'),
variables: {
defaultHost: {
default: ENV.fetch('ROUTES_HOST')
}
}
}
]
} })
end
config.swagger_docs = docs
配置/initialaziers/rswag_ui.rb

Rswag::Ui.configure do |c|
c.swagger_endpoint '/api-docs/v1/swagger.yaml', 'API V1 Docs' if Rails.env.development?
c.swagger_endpoint '/<api_name>/api-docs/v1/<my_second_doc>.yaml', 'API V1 Docs <my api>'
end

然后我使用rake rswag,它为我生成了2个文档。