gpt4 book ai didi

swagger - 使用 Swagger 生成的客户端时, header 中的硬编码 Api 键值

转载 作者:行者123 更新时间:2023-12-03 20:58:55 27 4
gpt4 key购买 nike

我用 C# 编写了许多 API,并使用 Swashbuckle 创建了一个“Swagger”文档网站。

对于 Authenticate REST 调用,我在 header 中使用 API key 。

我创建了一个页面,允许下载任何编程语言的特定客户端,如下所述:https://generator.swagger.io

我想让用户使用他自己的 API Key 生成一个客户端,这样他就不再需要在代码中手动设置 API Key。

在我的 Swagger JSON 中,我有这个安全定义:

"securityDefinitions": {
"apiKey": {
"type": "apiKey",
"description": "API Key Authentication",
"name": "X-ApiKey",
"in": "header"
}
}

在 Swagger Client Generator 的页面中,我发现这个模型允许设置客户端选项,但我找不到如何(以及是否)在客户端代码中对 API key 进行硬编码(或任何其他类型的授权)。
GeneratorInput {
spec (object, optional),
options (object, optional),
swaggerUrl (string, optional),
authorizationValue (AuthorizationValue, optional),
securityDefinition (SecuritySchemeDefinition, optional)
}
AuthorizationValue {
value (string, optional),
type (string, optional),
keyName (string, optional)
}
SecuritySchemeDefinition {
description (string, optional),
type (string, optional)
}

我想我必须设置 AuthorizationValue 对象,但没有关于它的文档(或者我找不到它)。

能够让生成的客户端库向所有请求添加任意 HTTP header 就足够了。

在这种情况下,我们可以让它添加:
X-ApiKey:{whatever the key is}

有人有想法吗?

非常感谢!

最佳答案

似乎可以简单地将它作为参数添加到每个具有默认值的调用中 - 因此 JSON 将具有以下内容:

"post": {
"tags": [ "user" ],
"summary": "Creates list of users with given input array",
"description": "",
"operationId": "createUsersWithListInput",
"produces": [ "application/xml", "application/json" ],
"parameters": [
{
"in": "body",
"name": "body",
"description": "List of user object",
"required": true,
"schema": {
"type": "array",
"items": { "$ref": "#/definitions/User" }
}
},
{
"in": "header",
"name": "X-ApiKey",
"required": false,
"type": "string",
"format": "string",
"default": "abcdef12345"
}
],
"responses": { "default": { "description": "successful operation" } }
}

关于swagger - 使用 Swagger 生成的客户端时, header 中的硬编码 Api 键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37437802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com