我有一组API文档页面,我想使用devise进行密码保护。该文档是使用rspec_api_documentation生成的。 gem使用rspec执行API方法并创建html或json doc文件。我正在生成json,并使用另一个gem apitome作为查看器。

这一切都工作得很好,我的api文档可以在/ api / docs中找到,但是我不知道如何要求身份验证才能查看这些文档。

通过apitome查看文档,因此可以使用rails。 route.rb中没有路由,但是apitom初始化程序会安装文档。

从apitom初始化程序:

# This determines where the Apitome routes will be mounted. Changing this to "/api/documentation" for instance would
# allow you to browse to http://localhost:3000/api/documentation to see your api documentation. Set to nil and mount
# it yourself if you need to.
config.mount_at = "/api/docs"


https://github.com/zipmark/rspec_api_documentation

https://github.com/modeset/apitome

我发现该方法文档应该使站点上的每个页面都需要身份验证,但是我仍然能够在不登录的情况下访问文档url。

#https://github.com/plataformatec/devise/wiki/How-To:-Require-authentication-for-all-pages


谢谢你的帮助。

最佳答案

您可以控制Apitome控制器并要求进行美化。


通过将mount_at设置为nil将apitome配置为不自行安装
写你的控制器ApidocsController扩展Apitome :: DocsController
添加before_filter:authenticate_user!在您的控制器中
向您的控制器添加路由:获取“ / api / docs”,至:“ apidocs#index”


控制器实现将如下所示:

class ApidocsController < Apitome::DocsController
    before_filter :authenticate_user!
end

10-07 17:04