TL;博士:
本质上如标题所示,我需要为每个端点 URL 安装独立的 OpenAPI 客户端吗?
详情:
我正在使用 OpenAPI 生成器 创建 Python 客户端,目的是从多个端点接收数据。例如,可以调用 OpenAPI 端点 URL:
https://some-url.com/swagger/yaml/User.yaml
https://some-url.com/swagger/yaml/Data.yaml
如果相关,这些端点基于 OpenAPI 规范 (OAS) v3.1。
据我从官方 OpenAPI 指南中了解到,我应该根据 URL 采取以下步骤:
pip
)由于我有两个 URL,因此我为每个包分配一个唯一的名称,以便它们都可以通过以下方式安装在同一个
venv
虚拟环境中:
java -jar openapi-generator-cli.jar generate \
--input-spec https://some-url.com/swagger/yaml/User.yaml \
--additional-properties packageName=openapi_user \
--generator-name python \
--output ./generated_openapi_user
java -jar openapi-generator-cli.jar generate \
--input-spec https://some-url.com/swagger/yaml/Data.yaml \
--additional-properties packageName=**openapi_data** \
--generator-name python \
--output ./generated_openapi_data
虽然这有效,但我觉得我做得不对,或者没有达到预期。为每个 URL 安装一个包似乎有点多。
由于我是 OpenAPI 的新手,我想听听执行此操作的最佳方法是什么。
我不确定我是否理解了这个问题:在这种情况下,我认为每个“URL”都是一个 API 描述文件?如果每个 yaml 文件都是 OpenAPI 描述(也许每个文件描述系统一个组件中的各种 API 操作),您可以将它们组合成一个 API 描述并从中生成一个包。
例如,通过 Redocly CLI,您可以使用
join
命令组合多个 API 描述。 (免责声明:我曾经在 Redocly 工作,很确定也有替代工具)。