gpt4 book ai didi

azure - Swashbuckle 生成的 Swagger 在 Azure API 管理中创建重复的版本路径

转载 作者:行者123 更新时间:2023-12-02 08:02:33 26 4
gpt4 key购买 nike

我正在尝试将 Azure API 管理配置为使用版本控制,并使其与 Swashbuckle 生成的 Swagger/Open API 文档配合使用。

我有一个有 2 个版本的 API - 1.0 和 2.0。我已将 Swashbuckle 配置为生成 2 个单独的 Swagger 文档,每个版本一个。一切都好。

版本控制方案是按路径进行的,因此消费者需要调用正确的路径(v1.0 或 v2.0)。像这样:https://someurl/v1.0/some/thing

我已在 Azure API 管理中定义了两个版本并导入了两个文档。

问题是 Azure API 管理将路径添加到基本 URL,然后由于 Swashbuckle 生成的 Open API 文档中定义的路径,我最终得到 https://someurl/v1.0/v1.0/some/thing在 Azure API 管理中。

下面是生成的 Swagger/Open API 的片段...

enter image description here

以及 Azure API 管理中的 API 版本设置...

enter image description here

以及 Azure API 管理中的完整 URL...

enter image description here

所以,我的问题是如何使用 Swashbuckle 或任何其他工具生成 Swagger 文档,以便我可以使用路径版本控制方案支持 Azure API 管理版本控制。

提前谢谢您!

最佳答案

由于 OpenAPI 规范本身不允许定义版本控制方案,因此无法在 APIM 级别推断用户意图。有人可能希望将路径中包含/v1.0/的 API 作为单个 API 导入,而其他人(例如您的情况)希望设置 API + 版本。默认情况下,APIM 不会在 API 导入期间创建/更新版本集,因此目前唯一的方法是在导入 APIM 之前从 OpenAPI 规范中删除/v1.0 前缀。

APIMs 域模型允许在 API 版本集级别控制版本控制方案(路径前缀、 header 名称/值、查询参数名称/值),这样您就不需要在每个操作上重复/v1.0您的 API 的。本质上,如果您的 API 版本集配置为路径前缀为/v1.0,它将附加到此版本集中包含的所有 API 路径。这就是产生加倍的原因。

关于azure - Swashbuckle 生成的 Swagger 在 Azure API 管理中创建重复的版本路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52839225/

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