3.6. 导入 OpenAPI 定义


要创建新服务或更新现有服务,您可以从本地文件或 URL 导入 OpenAPI 定义。导入的默认服务名称由 OpenAPI 定义中的 info.title 指定。但是,您可以使用 --target_system_name=<NEW NAME> 覆盖 此服务名称。这将更新服务名称(如果已存在),或者创建新的服务名称(如果不存在)。

导入 openapi 命令的格式如下:

3scale import openapi [opts] -d=<destination> <specification>

OpenAPI <specification> 可以是以下之一:

  • /path/to/your/definition/file.[json|yaml|yml]
  • http[s]://domain/resource/path.[json|yaml|yml]

示例

$ podman run registry.redhat.io/3scale-amp2/toolbox-rhel7:3scale2.8 3scale import openapi [opts] -d=https://{DEST_KEY}@{3SCALE_ADMIN}-admin.{DOMAIN_NAME}  my-test-api.json

命令选项

导入 openapi 命令选项包括:

-d --destination=<value>
3scale 目标实例格式: http[s]://<authentication>@3scale_domain
-t --target_system_name=<value>
3scale 目标系统名称.
--backend-api-secret-token=<value>
API 网关向后端 API 发送的自定义机密令牌。
--backend-api-host-header=<value>
API 网关向后端 API 发送的自定义主机标头。

如需了解更多选项,请参阅 3scale import openapi --help 命令。

OpenAPI 导入规则

导入 OpenAPI 定义时应用以下规则:

  • 定义验证为 OpenAPI 2.0 或 OpenAPI 3.0。
  • 3scale 服务中的所有映射规则都会被删除。
  • 要替换,所有方法名称都必须与 OpenAPI 定义 操作中定义的方法相同。operationId 使用精确的模式匹配。
  • 仅修改 OpenAPI 定义中包含的方法。
  • 仅存在于 OpenAPI 定义中的所有方法都附加到 Hits 指标。
  • 导入 OpenAPI 定义中的所有映射规则。您可以在 API > Integration 中查看它们。
  • 支持的安全方案是 apiKeyoauth2,其中包含任何 OAuth 流类型。
  • OpenAPI 规格必须是以下之一:

    • 可用路径中的文件名.
    • toolbox 可以从中下载内容的 URL。支持的方案是 httphttps
    • stdin 标准输入流读取.这通过设置 - 值来控制。
注意

虽然规范中没有安全要求,但该服务被视为 OpenAPI。toolbox 将添加一个 default_credentials 策略,如果还没有在策略链中,它也称为 anonymous_policydefault_credentials 策略将配置在可选参数 --default-credentials-userkey 中提供的 user key

OpenAPI 3.0 限制

导入 OpenAPI 3.0 定义时会应用以下限制:

  • 只有 servers 列表中的第一个 server.url 元素解析为专用 URL。server.url 元素 的路径 组件将用作 OpenAPI 的 basePath 属性。
  • toolbox 不会解析操作对象中路径项和服务器中的服务器。
  • 不支持安全方案对象中的多个流。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.