Swagger是一种用于描述、构建、调用和可视化RESTful API的工具。它使用OpenAPI规范(以前称为Swagger规范)来定义API的结构和元数据。
rswag是一个Ruby gem,它为Ruby on Rails应用程序提供了一种简单的方式来集成Swagger文档和UI。它基于Rspec测试框架,可以通过测试代码来生成Swagger文档,并提供一个自动生成的Swagger UI来可视化API。
要使用rswag添加Swagger show action,可以按照以下步骤进行操作:
gem 'rswag'
运行bundle install
命令安装依赖。
config/application.rb
中添加以下配置:require 'rswag/api'
require 'rswag/ui'
module YourAppName
class Application < Rails::Application
# ...
config.middleware.use Rswag::Api::Middleware
config.middleware.use Rswag::Ui::Middleware
# ...
end
end
这将启用Swagger的API和UI中间件。
swagger_helper.rb
辅助文件来生成Swagger文档。在你的测试目录中创建一个名为swagger_helper.rb
的文件,并按照以下示例进行配置:require 'rails_helper'
RSpec.configure do |config|
config.swagger_root = Rails.root.to_s + '/swagger'
config.swagger_format = :json
config.swagger_dry_run = false
end
这将告诉rswag在Rails项目根目录的swagger
目录下生成Swagger文档,并以JSON格式保存。
然后,使用RSpec编写测试用例,例如:
RSpec.describe 'Example API', type: :request do
path '/example/{id}' do
get 'Retrieves an example' do
tags 'Examples'
produces 'application/json'
parameter name: :id, in: :path, type: :string
response '200', 'example found' do
schema type: :object,
properties: {
id: { type: :integer },
name: { type: :string }
},
required: ['id', 'name']
let(:id) { create(:example).id }
run_test!
end
response '404', 'example not found' do
let(:id) { 'invalid' }
run_test!
end
end
end
end
在这个示例中,我们定义了一个GET请求的测试用例,并指定了API的路径、标签、参数和响应。
swagger
目录下。/api-docs
路径可以查看生成的Swagger文档的JSON格式。访问/swagger
路径可以查看Swagger UI,并通过UI界面来可视化API。在腾讯云产品中,可以使用腾讯云API网关(API Gateway)来构建和托管RESTful API,并使用腾讯云对象存储(COS)来存储Swagger文档和UI的静态文件。
腾讯云API网关产品介绍:https://cloud.tencent.com/product/apigateway
腾讯云对象存储(COS)产品介绍:https://cloud.tencent.com/product/cos
云+社区技术沙龙[第25期]
云+社区技术沙龙[第27期]
云+社区技术沙龙[第14期]
云+社区技术沙龙[第28期]
腾讯云GAME-TECH沙龙
T-Day
技术创作101训练营
云+社区开发者大会(杭州站)
云+社区技术沙龙 [第30期]
云+社区技术沙龙[第23期]
云+社区技术沙龙[第24期]
领取专属 10元无门槛券
手把手带您无忧上云