API 产品
API 产品是一个或多个网关服务的精选捆绑包,通过开发者门户发布供开发者使用。API 产品在内部服务架构和面向开发者的 API 目录之间提供了一个抽象层,允许提供商控制开发者看到的内容以及他们访问 API 的方式。
产品类型
API7 支持两种类型的 API 产品:
网关产品
网关产品链接到 API7 网关中的服务。创建网关产品时,你可以将其与一项或多项服务及其主机相关联。该门户根据附加到这些服务的 OpenAPI 规范自动生成 API 文档。
对底层服务的更改(例如路由更新或新的端点)会自动反映在 API 产品中,从而无需手动同步。
外部产品
外部产品代表不受 API7 网关管理的 API。你提供 OpenAPI 规范(JSON 或 YAML)和一个或多个服务器 URL。外部产品允许你将第三方或旧版 API 与网关管理的 API 一起包含在开发者门户目录中。
外部产品不支持订阅或基于凭证的身份验证,因为 API7 网关不代理其流量。
可见性
每个 API 产品都有一个可见性设置,控制谁可以在开发者门户中看到它:
| 能见度 | 行为 |
|---|---|
| 公开 | 所有访问者都可以看 到,包括未经身份验证的用户。 |
| 已登录 | 仅对经过身份验证的开发者可见。 |
身份验证
网关 API 产品可能需要一种或多种身份验证方法。当开发者订阅并创建凭证时,Portal将认证配置推送到网关数据面。
支持的身份验证类型:
| 类型 | 描述 |
|---|---|
| 密钥认证 | 开发者生成 API 密钥并将其包含在请求中。 |
| 基本身份验证 | 开发者使用用户名和密码对。 |
| DCR(动态客户端注册) | 开发者通过门户向身份提供商注册 OAuth 2.0 客户端。需要配置的 DCR 提供程序。 |
你可以在单个产品上启用多种身份验证类型。产品发布后,认证配置将被锁定。要更改身份验证类型,你必须先取消发布产品。
状态生命周期
API 产品有两种状态:
| 状态 | 行为 |
|---|---|
| 草稿 | 在开发者门户上不可见。所有 字段均可编辑。 |
| 已发布 | 在开发者门户上可见(取决于可见性设置)。身份验证配置已锁定。 |
发布 API 产品会将其身份验证规则推送到其链接到的网关服务。将产品恢复为草稿会删除这些规则并取消所有活动订阅。
链接网关服务
网关 API 产品通过链接网关服务与一项或多项服务关联。每个链接指定:
- 网关组:发布服务的网关组。
- 服务:产品中包含的服务。
- 主机:(可选)要公开的特定主机。如果省略,则包括该服务的所有主机。
向开发者显示的 API 文档源自链接服务的 OpenAPI 规范。
通知
API 产品支持基于事件的通知,向管理员和开发者发出有关订阅生命周期事件的警报。通知渠道包括电子邮件和 Webhook。有关配置通知的详细信息,请参阅管理订阅。