lazybios

Rails: 使用Swagger来维护Grape API文档

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。其将维护接口文档的工作,与维护代码相结合,使得二者可以齐头并进,随着代码文件的更新,文档也得到了更新。

Ruby元编程

gem 'grape', '0.10.0'  
gem 'grape-swagger', '0.9.0'
gem 'grape-swagger-rails'

app
├── api
│   ├── dispatch.rb
│   └── v1
│       └── test_api.rb

GrapeSwaggerRails.options.url      = "api/swagger_doc"
GrapeSwaggerRails.options.app_name = 'appname'
GrapeSwaggerRails.options.app_url  = '/'
mount Dispatch, at: 'api'
mount GrapeSwaggerRails::Engine => '/docs'
add_swagger_documentation(
  base_path: "/api",
  hide_documentation_path: true,
  hide_format: true,
)

上面的步骤做好以后,就可以通过http://locahost/docs访问文档了。这里需要注意的是有的较早一点的文章中将GrapeSwaggerRails.options.url会设置为api/swagger_doc.json,这样的会导致js解析接口的时候出现404错误,去掉后缀即可,另外如果还有其它奇奇怪怪的错误,可以通过devtools来排错。

-完-

微信关注「日拱一卒」公众号