在我的API文档中,我想定义每个API endpoints 所需的安全性 . 该项目已定义角色和权限,用于确定哪些用户可以访问API . Swagger记录此信息的最佳方式是什么?有关如何显示此详细信息的最佳做法或建议吗?
这是我尝试使用securityDefinitions和角色的自定义变量,但是当我通过swagger2markup或使用swagger-ui运行时,该信息(x-role-names)没有被复制到文档中 .
"securityDefinitions": {
"baseUserSecurity": {
"type": "basic",
"x-role-names": "test"
}
}
记录每个 endpoints 的角色和权限信息的最佳方法是什么?
1 回答
如果您的API使用oAuth身份验证,则可以使用范围 . 没有标准的方法来表示Swagger / OpenApi中的角色对抗基本身份验证,因此您将继续使用供应商扩展(Swagger-UI或swagger2markup等工具无法解释,如您所见),或包括信息作为
summary
或description
属性中的文本 .你可以定义多个
securityDefinitions
所有类型basic
并且每个角色使用一个,但这有点像黑客 .有关将范围扩展到其他安全方案的提议,请参阅此问题https://github.com/OAI/OpenAPI-Specification/issues/1366 .