API使用流程
场景
第三方应用A的开发者Peter(合作伙伴)通过API门户访问TUS平台上的API(Mary注册)。
| 角色 | 身份 | 说明 |
|---|---|---|
| TUS 平台 | API 管理平台 | 提供 API 的发布托管、认证授权(OAuth2)、访问控制、监控统计等基础设施功能 |
| Mary | API 提供者(API 发布者) | 负责在 TUS 平台上创建并发布 API,定义访问策略、安全机制等 |
| Peter | 第三方应用的开发者(合作伙伴) | 在 API 门户中注册“应用 A”,获取访问凭证(Client ID / Client Secret) |
| 应用 A | API 使用者(API 订阅者) | 使用 Access Token 访问 API,发起请求,实际消费 Mary 提供的API |
-
Peter需要在API门户中注册第三方应用A,获取应用凭证:OAuth2的客户端ID(Client ID)/ 客户端密钥(Client Secret),用来标识应用A;
-
第三方应用A采用客户端凭证模式(通过应用凭证访问API,不依赖用户交互),将 client_id、client_secret 发送给TUS授权服务器的令牌端点,获取访问令牌(Access Token),应用A通过Access Token访问数据;
-
Access Token过期后,重新发送应用凭证(Client ID / Client Secret),获取新的Access Token。
整个过程中,合作伙伴Peter的用户名和密码不会暴露给第三方应用A,Token是应用A访问API的凭证。
概念
| 概念 | 所指对象 | 说明 |
|---|---|---|
| API 提供者 | 人(或组织) | 比如 Mary,是创建、发布并拥有某个 API 的主体,负责 API 的定义与维护。 |
| API 订阅者 | 应用系统 | 比如 Peter 注册的“应用 A”,是实际持有凭证、获取 token、调用 API 的主体。 |
API订阅
| 序号 | 步骤 | 说明 |
|---|---|---|
| 1 | 注册账号 | Peter注册API门户的账号。 |
| 2 | 创建应用系统 | Peter在API门户中创建一个或者多个应用系统。 |
| 3 | 订阅API | 在门户的API检索中,Peter通过应用系统订阅API。 |
| 4 | 订阅审批 | 具有订阅审批权限的用户在TUS中进行审批。 |
| 5 | API调用 | 第三方应用A 使用Token调用订阅的API 。 |
API注册(发布)
| 序号 | 步骤 | 说明 |
|---|---|---|
| 1 | 注册账号 | Mary注册TUS的账号。 |
| 2 | 创建项目 | Mary在TUS中创建一个或者多个项目。 |
| 3 | API注册 | 在TUS的API目录中,Mary注册API,并指定所属的项目。 |
| 4 | 注册审批 | 具有API注册审批权限的用户,在TUS中进行审批。 |
| 5 | API发布 | 注册审批通过后,API在API门户中可以被检索(API门户需要配置项目)。 |
API门户
| 序号 | 步骤 | 说明 |
|---|---|---|
| 1 | 创建API门户 | TUS系统管理员可以创建API门户,每个API门户有独立的URL。 |
| 2 | 添加项目 | 新建 API 门户后,可通过添加项目来展示项目中的 API。 |
| 4 | 添加用户 | 新建 API 门户后,可添加已有的用户。 |
| 5 | 新用户注册 | 门户中的新用户注册后,在TUS中进行审批。 |
| 6 | 登录API门户 | 注册成功的门户用户,登录API门户,订阅API。 |
API状态类型
这个流程图完整展示了API注册、测试、部署、运行、卸载以及撤销注册的全生命周期管理,反映了项目中API管理的四种核心状态(草稿、启用、停用、禁用)及其转换关系,并将API管理分为目录管理和运行管理两个主要阶段,与系统中的功能模块相对应。
-
目录管理:注册/撤销注册、发布/撤销发布(在上图中称为 部署/卸载,有的地方称为"上线/下线",都是同一个意思。)
-
运行管理: 启动/停止、变更。部署成功后进入运行管理列表,卸载后被移出运行管理列表。
-
API注册(API发布):
- 从"新建"开始,进入"草稿"状态
- 处于"草稿"状态的API可以进行"编辑"
- 进行"保存"、"另存"操作,保持在草稿状态
- 发起"注册"申请
-
注册审批:
- 注册后等待审批;
- 审批通过后,进行API测试,状态仍为"草稿";
- 测试通过后,进行部署,状态变为"启用";
-
API运行管理:
- 启用的API可以"停止",状态变为"停用"
- 停用的API可以"卸载",状态变为"禁用"
-
撤销API注册(撤销发布):
- 撤销需要审核通过
- 审核通过后,状态变为"禁用";
- "禁用"状态的API,可以另存,可以删除;