Flask RESTPlus swagger 接口未将授权 header 传递给 curl 请求
Flask RESTPlus swagger interface doesn't pass Authorisation header on to curl request
运行 最新(由于切换到 flask REST-X,现在已经很旧了)flask RESTPlus 使用带有 Bearer 令牌的 swagger 接口的授权功能如下:
authorizations = {
'apikey': {
'type': 'apiKey',
'in': 'header',
'name': 'Bearer '
}
但是尽管 "Authorise" 框出现在 swagger 界面中,我可以在其中放置一个令牌,但它不会添加到发出的请求或 swagger 提供的 curl 格式中,所以我们可以清楚地看到它没有被拾取。这是怎么回事,我该如何解决?
确保代码也有注释,可以将 security
添加到单个操作或全局。这是实际将 Authorization
header 附加到操作所必需的。
换句话说,生成的 OpenAPI 定义应包含以下内容。
如果使用 OpenAPI 2.0:
swagger: '2.0'
securityDefinitions:
apikey:
type: apiKey
in: header
name: Authorization
security:
- apiKey: []
如果使用 OpenAPI 3.0:
openapi: 3.0.0
components:
securitySchemes:
apikey:
type: apiKey
in: header
name: Authorization
# or using OAS3 Bearer auth scheme
# apiKey:
# type: http
# scheme: bearer
security:
- apiKey: []
运行 最新(由于切换到 flask REST-X,现在已经很旧了)flask RESTPlus 使用带有 Bearer 令牌的 swagger 接口的授权功能如下:
authorizations = {
'apikey': {
'type': 'apiKey',
'in': 'header',
'name': 'Bearer '
}
但是尽管 "Authorise" 框出现在 swagger 界面中,我可以在其中放置一个令牌,但它不会添加到发出的请求或 swagger 提供的 curl 格式中,所以我们可以清楚地看到它没有被拾取。这是怎么回事,我该如何解决?
确保代码也有注释,可以将 security
添加到单个操作或全局。这是实际将 Authorization
header 附加到操作所必需的。
换句话说,生成的 OpenAPI 定义应包含以下内容。
如果使用 OpenAPI 2.0:
swagger: '2.0'
securityDefinitions:
apikey:
type: apiKey
in: header
name: Authorization
security:
- apiKey: []
如果使用 OpenAPI 3.0:
openapi: 3.0.0
components:
securitySchemes:
apikey:
type: apiKey
in: header
name: Authorization
# or using OAS3 Bearer auth scheme
# apiKey:
# type: http
# scheme: bearer
security:
- apiKey: []