我在OAS 3.0.0中定义我的API遇到麻烦。我的API端点在标头中需要apiKey
,我想明确地告诉客户端。为此,在我的路径对象中,我声明它在apiKey
对象下需要security
,在parameter
对象中我也声明它需要apiKey "in" : "header"
,因此文档将明确告诉客户端输入apiKey。但是,当我使用react swaggerhub-ui软件包生成API文档时,即使我为标头参数和授权对象输入相同的apiKey,try it out
函数也会失败。它甚至不会将http请求发送到该端点。
但是,当我将try it out
更改为可选时,header parameter
函数起作用,但这实际上与我的API定义相矛盾。我是错误地定义了我的API,是否可以正确定义它,以便每个端点都可以在标头中明确说明其需要。
另外,如果我在swagger gui中粘贴我的oas定义,它也可以工作,但是当我使用react swagghub-ui呈现文档时,它会失败。反应page和repo。
路径对象:
"security" : [
{"APP-API-KEY": []}
],
"parameters" : [ {
"$ref": "#/components/parameters/APP-API-KEY"
}
securitySchema:
"securitySchemes" : {
"APP-API-KEY" : {
"type" : "apiKey",
"name" : "APP-API-KEY",
"in" : "header",
"description" : "...."
}
}
参数部分:
"components" : {
"parameters" : {
"APP-API-KEY" : {
"name" : "APP-API-KEY",
"in" : "header",
"description" : "...",
"required" : true,
"schema" : {
"type" : "string"
}
}