2015-05-19 73 views
0

我正在使用grape-swagger gem,并且我无法获得Swagger中正确描述的基于Grape的API。 使用:grape (0.11.0)grape-swagger (0.10.1)Grape-Swagger未列出基于葡萄的API中包含的方法

当我使扬鞭JSON上市我得到这个输出列出所有端点,但不包含在每个端点的方法。

我的输出:

{ 
    "apiVersion": "v0", 
    "swaggerVersion": "1.2", 
    "produces": [ 
    "application/json" 
    ], 
    "apis": [ 
    { 
    "path": "/version.{format}", 
    "description": "Operations about versions" 
    }, 
    { 
    "path": "/ping.{format}", 
    "description": "Operations about pings" 
    }, 
    { 
    "path": "/users.{format}", 
    "description": "Operations about users" 
    }, 
    { 
    "path": "/company.{format}", 
    "description": "Operations about companies" 
    }, 
    { 
    "path": "/merchants.{format}", 
    "description": "Operations about merchants" 
    } 
    ], 
    "info": {} 
} 

我还添加了CORS津贴在config.ru这样的:

require 'rack/cors' 
use Rack::Cors do 
    allow do 
    origins '*' 
    resource '*', 
     headers: :any, 
     methods: [:get, :post, :put, :delete, :options] 
    end 
end 

如何获得内部列出的每个端点方法任何线索?

回答

1

这并不是Swagger 1.2的工作原理。

假设您在/api-docs处获得上述JSON,请尝试打开/api-docs/version.json例如查看version的操作。当然,如果它不在/api-docs下托管,只需用实际使用的路径段替换该部分即可。

+0

对于一些愚蠢的原因,我完全期待一个统一的响应JSON文件。 现在一切都变得有意义并且使用这个输出可以很好地工作。 谢谢! –

+1

Swagger 2.0确实是一个单独的文件。当葡萄招摇者会释放对它的支持时,你不知道该怎么办,但你应该留意。 – Ron

+0

很高兴知道Swagger 2.0。我的猜测是,多文件方法来自WSDL时代,就像那样,可以以某种方式称为Swagger的XML前端。 –