每个端点(URL)是否需要独立的OpenAPI客户端?

问题描述 投票:0回答:1

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 采取以下步骤:

  • 生成独立的Python客户端
  • 在虚拟环境中安装客户端包(通过
    pip
  • 从该 URL/端点读取数据

由于我有两个 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 的新手,我想听听执行此操作的最佳方法是什么。

openapi openapi-generator openapi-generator-cli
1个回答
0
投票

我不确定我是否理解了这个问题:在这种情况下,我认为每个“URL”都是一个 API 描述文件?如果每个 yaml 文件都是 OpenAPI 描述(也许每个文件描述系统一个组件中的各种 API 操作),您可以将它们组合成一个 API 描述并从中生成一个包。

例如,通过 Redocly CLI,您可以使用

join
命令组合多个 API 描述。 (免责声明:我曾经在 Redocly 工作,很确定也有替代工具)。

© www.soinside.com 2019 - 2024. All rights reserved.