在swgger ui中隐藏一些api

时间:2018-04-05 22:16:48

标签: node.js swagger-ui hapijs hapi-swagger

hapi-swagger是否有可能根据用户角色隐藏文档中的一些API(swagger ui)。 我的意思是假设我有/employee/admin两个API,所以每当管理员登录swagger ui或swagger文档时,/employee/admin API都会显示在页面上,如果员工登录为了招摇ui,它应该只显示/employee API。

1 个答案:

答案 0 :(得分:1)

您可以通过在配置中省略['tag']值来隐藏路由,但是如果不进行大量修改,就不能在基于用户的角色上使用此路由。该文档不是在服务器启动时即时生成的,这就是为什么您需要重新加载服务器以反映更改的原因。

我有一个类似的用例,最后我决定为两个不同的服务(在您的情况下为雇员和管理员)使用不同的端点更有意义。因此,也许像api.domain.com/internal和api.domain.com/external之类的东西,如果需要的话,可以很容易地将身份验证包装在这两个方法中。如果您想授予开发人员使用一个API组的权限,而不是同时打开两个API组的权限,那么这也会带来好处。