Way*_*Lue 5 ruby-on-rails swagger grape-api
我正在使用grape、grape-swagger、 和grape-swagger-rails为我的 Rails 4.2.1 项目设置 API。它将是一个内部 API,因此我希望开发人员能够访问它,但普通公众不能访问它。最好的方法是什么?
我最初的想法是利用api_key可以在 中设置的字段swagger-ui,但我无法找出在 Grape 的根 API 生成器中访问它的正确方法。
我还认为,如果用户是管理员(我们正在使用 Devise),我可以尝试仅安装文档的端点,但这不会隐藏文档本身(如果有人知道链接swagger.json)。
过去人们是如何处理这个问题的?
您可以用于sorcery身份验证,它添加了几个非常方便的方法(在下面的示例中logged_in?)并config/initializers/swagger.rb添加:
GrapeSwaggerRails.options.before_filter do |request|
unless logged_in?
redirect_to Rails.application.routes.url_helpers.root_path
end
end
Run Code Online (Sandbox Code Playgroud)
使用api_key也是可以的。在您class API < Grape::API刚刚添加的before块中检查api_key值是否正确的位置,通过params.
| 归档时间: |
|
| 查看次数: |
2257 次 |
| 最近记录: |