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