bel*_*ros 5 rails-api swagger-ui swagger-2.0 ruby-on-rails-5.2
我用谷歌搜索了一下,找到了一种适当且易于实现的方法来为现有的 Rails API 应用程序生成Swagger文档。简而言之,有两种实现方式:通过控制器、模型或通过 Rspec 控制器/请求规范。列表不会太长,选择也不是那么容易:
有人知道其他 gems 可以为现有的 Rails API 应用程序生成 Swagger 文档吗?欢迎任何建议!谢谢你。
我找到的解决方案是使用rswag gem 和rspec-rails-swagger gem - 通过在 Gemfile 中添加以下内容来安装 rswag gem:
#Gemfile
gem 'rswag-api'
gem 'rswag-ui'
group :development, :test do
gem 'rspec-rails', '~> 3.8.1'
gem 'rspec-rails-swagger', '~> 0.1.5'
...
end
Run Code Online (Sandbox Code Playgroud)
rails g rswag:install生成swagger_helper.rbrails generate rspec:swagger PostsController(将名称调整为您想要编写规范的控制器)。bundle exec rake swagger生成swagger.json文件。routes.rb文件中来安装 RSwag API 和 RSwag UI 引擎:#../config/routes.rb
Rails.application.routes.draw do
mount Rswag::Ui::Engine => '/api-docs'
mount Rswag::Api::Engine => '/api-docs'
...#other routes come here
end
Run Code Online (Sandbox Code Playgroud)
rails slocalhost:3000/api-docs查看生成的 Swagger 文档。注意:它工作得很好并且满足了客户的要求,即:
我rswag-specs从中删除了 gem,Gemfile因为它无法验证我在 Rails API 应用程序中使用的active_model_serializers gem以JSON API 格式返回的响应模式。我总是必须:
现在,请求规范可以同时由 RSpec 和 rspec-rails-swagger 进行验证,无需麻烦。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
5363 次 |
| 最近记录: |