【发布时间】:2017-01-20 09:45:02
【问题描述】:
我正在尝试为 SecurityDefinition 构建 Swagger 设置,以便在 openapi.json 中获得以下结果:
"securityDefinitions": {
"password": {
"type": "oauth2",
"tokenUrl": "http://example.com/oauth/token",
"flow": "password",
"scopes": {
"write": "allows modifying resources",
"read": "allows reading resources"
}
}
},
"security": [{
"password": ["read", "write"]
}]
在我的 settings.py 中,我添加了以下招摇设置:
# Swagger settings
SWAGGER_SETTINGS = {
"SECURITY_DEFINITIONS": {
"password": {
"type": "oauth2",
"tokenUrl": "http://example.com/oauth/token",
"flow": "password",
"scopes": {
"write": "allows modifying resources",
"read": "allows reading resources"
}
}
},
"SECURITY": [{
"password": ["read", "write"]
}]
}
问题是在 Swagger 生成的 openapi.json 中没有 security 字典,我不知道它是如何生成的。
下面,展示生成的openapi.json:
{
"info": {
"title": "Example Service API",
"version": ""
},
"host": "http://example.com",
"swagger": "2.0",
"securityDefinitions": {
"password": {
"type": "oauth2",
"scopes": {
"write": "allows modifying resources",
"read": "allows reading resources"
},
"tokenUrl": "http://example.com/oauth/token",
"flow": "password"
}
},
"paths": {...}
}
在我的 Swagger 设置中有没有更好的方式来描述这个概念? 或者您能描述一下生成 openapi.json 文件的过程以及它是如何工作的吗?
【问题讨论】:
-
能否把openapi.json文件内容贴出来方便调试
-
我刚刚更新了问题!
-
为什么要在列表中构造字典来定义安全性?用普通的 dict 试试。
-
当你想拥有
OAuth 2.0 - Password时,这是标准的Swagger模板......另外,我用普通的dict尝试过,我得到了相同的结果。 -
是否尝试在swagger.io/irc 中提问?
标签: python django swagger django-swagger