我用谷歌搜索了一下,想找到一种合适且易于实现的方法来为现有的RailsAPI应用程序生成Swagger留档。简而言之,有两种实现方式:通过控制器、模型或通过Rspec控制器/请求规范。列表并不太长,选择也不容易:
有人知道为现有的RailsAPI应用程序生成Swagger留档的其他宝石吗?欢迎任何建议!谢谢。
我来的解决方案是使用rswiggem和rspec-rails-swagger gem-通过在您的Gemfile中添加以下内容来安装rswiggem:
#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 rwag: install
生成swagger_helper.rb
rails生成rspec: swagger PostsController
(将名称调整为您想要编写规范的won控制器)。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-spes
gem,因为它无法验证我在RailsAPI应用程序中使用的gem以JSONAPI格式返回active_model_serializers响应模式。我总是:
现在请求规范由RSpec和rspec-rails-swagger同时验证,没有任何麻烦。
希望这有帮助。
我们的工作解决方案是使用: