我在Google上做了一些搜索,以找到一种适当且易于实现的方式来为现有的Rails API应用生成Swagger文档。简而言之,有两种实现方式:通过控制器,模型或通过Rspec控制器/请求规范。列表不太长,选择也不容易:
有人知道其他宝石可以为现有的Rails API应用生成Swagger文档吗?欢迎任何建议!谢谢。
答案 0 :(得分:0)
我遇到的解决方案是使用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
rails g rswag:install
生成swagger_helper.rb
rails generate rspec:swagger PostsController
(使名称与您要编写规范的获胜控制器相适应)。bundle exec rake swagger
生成一个swagger.json
文件。routes.rb
文件中添加以下行,#../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
rails s
localhost:3000/api-docs
以查看生成的Swagger文档。注意:它工作得很好,并且可以答复客户要求,即:
我从rswag-specs
中删除了Gemfile
gem,因为它无法验证我在Rails API应用中使用的JSON API format gem在active_model_serializers中返回的响应模式。我一直必须:
现在,请求规范可以同时通过RSpec和rspec-rails-swagger进行验证。
希望这会有所帮助。
答案 1 :(得分:0)
我们的工作解决方案是使用: