Ruby on rails 使用grape swagger发布API文档

Ruby on rails 使用grape swagger发布API文档,ruby-on-rails,ruby,swagger,grape,Ruby On Rails,Ruby,Swagger,Grape,我正在尝试使用grape swagger gem为我的grape API创建自动生成的文档 我使用'grape'gem创建了几个api 示例: 这个API运行良好 在'的文档之后,我无法正确生成API文档 我的步骤: 1) 我在gemfile中添加了以下内容 gem 'grape-swagger' 2) 我还使用了rack cors,通过在config.ru中添加以下内容来启用cors require 'rack/cors' use Rack::Cors do allow do

我正在尝试使用grape swagger gem为我的grape API创建自动生成的文档

我使用
'grape'
gem创建了几个api

示例:

这个API运行良好

在'的文档之后,我无法正确生成API文档

我的步骤:

1) 我在gemfile中添加了以下内容

gem 'grape-swagger'
2) 我还使用了rack cors,通过在config.ru中添加以下内容来启用cors

require 'rack/cors'
use Rack::Cors do
  allow do
    origins '*'
    resource '*', headers: :any, methods: [ :get, :post, :put, :delete, :options ]
  end
end
在gemfile中也添加了以下内容

gem 'rack-cors', :require => 'rack/cors'
3) 我还在API类的末尾添加了以下内容

add_swagger_documentation
但是当我跑步时,我没有找到正确的路径。 我需要像这样的API路径,但它返回为


是否需要设置任何其他配置?

在api类末尾添加以下参数以隐藏文档路径:

add_swagger_documentation hide_documentation_path: true, api_version: 'v1'
如果要使用此gem,请按照文档使用此配置:

然后创建名为config/initializers/swagger.rb的文件,并添加以下自定义行:

GrapeSwaggerRails.options.url      = "/api/v1/swagger_doc"
GrapeSwaggerRails.options.app_url  = "#{ENV['APPLICATION_URL']}"
您可以在环境变量中设置应用程序URL,如:
localhost:3000

并且您的config/routes.rb文件将路由设置为

mount GrapeSwaggerRails::Engine => '/swagger'
然后您可以从这里访问所有文档:
localhost:3000/swagger


通过这种方式,您可以使用grape api自定义您的招摇过市文档。

谢谢Sachin!如果我添加hide_documentation_path:true,那么swagger_doc的API路径将被删除。但我担心的是,我没有收到localhost:9292/ap1/v1/charges,因为它将作为localhost:9292/api/v1/swagger/charges返回。有什么出路吗?或者我犯了什么错误?我按照上面描述的所有说明进行了操作,并得到了以下错误:未能解析JSON/YAML响应