使用grape-swagger的API文档问题

时间:2015-05-27 05:45:42

标签: ruby-on-rails ruby swagger grape

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

使用'grape' gem我创建了一些API。

示例:

http://localhost:9292/api/v1/charges

此API工作正常。

根据'grape-sagger'的文档,我无法正确生成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

但是当我运行http://localhost:9292/api/v1/swagger_doc时,我没有得到正确的路径。 我需要像http://localhost:9292/api/v1/charges这样的API路径,但它返回http://localhost:9292/api/v1/swagger_doc/charges

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

1 个答案:

答案 0 :(得分:1)

在api类的末尾添加以下params for hide documentation path:

add_swagger_documentation hide_documentation_path: true, api_version: 'v1'

如果您想使用此gem grape-swagger-rails,请按照文档使用此配置:

然后创建名为config / intializers / swagger.rb的文件并添加此行以进行自定义:

GrapeSwaggerRails.options.url      = "/api/v1/swagger_doc"
GrapeSwaggerRails.options.app_url  = "#{ENV['APPLICATION_URL']}"

您可以在其中设置APPLICATION_URL,例如:localhost:3000

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

mount GrapeSwaggerRails::Engine => '/swagger'

然后,您可以从此处访问所有文档:localhost:3000/swagger

这样您就可以使用grape api自定义swagger文档。