Skip to content

API 资源

概述

API 资源模块用于定义平台中受保护的 API 资源。每个 API 资源通过唯一的 Indicator URL 标识,并可以包含多个权限范围(Scope)。应用在请求访问令牌时,通过指定资源和范围来获取对应的权限。

导航路径: 侧边栏 -> API 资源

核心概念

  • API 资源(Resource): 代表一个受保护的 API 服务,通过 Indicator URL 唯一标识。
  • 权限范围(Scope): 定义在资源上的细粒度权限,用于控制对资源的具体操作权限。
  • Access Token TTL: 针对该资源签发的访问令牌的有效期。

资源列表

资源列表页面展示所有已定义的 API 资源。

列表字段

字段说明
名称资源的显示名称
Indicator资源的唯一标识 URL(如 https://api.example.com
默认资源是否为系统默认资源
Access Token TTL访问令牌有效期(秒)
权限范围数量该资源下定义的权限范围数量
创建时间资源创建时间

搜索与筛选

  • 关键词搜索 (search): 模糊匹配
  • 名称 (name): 精确匹配
  • Indicator (indicator): 精确匹配
  • 资源 ID (id): 精确匹配

创建资源

点击 "新建资源" 按钮进入创建页面。

导航路径: API 资源 -> 新建资源

创建参数

字段必填说明
名称资源的显示名称
Indicator资源的唯一标识 URL

API 调用:

POST /api/v1/resources

请求示例:

json
{
  "name": "订单 API",
  "indicator": "https://api.example.com/orders"
}

编辑资源

在资源列表中点击资源名称或编辑按钮,进入资源编辑页面。

导航路径: API 资源 -> 编辑资源

可编辑字段

字段说明
名称资源的显示名称
Access Token TTL针对该资源签发的访问令牌有效期(秒)

API 调用:

PATCH /api/v1/resources/:id

请求示例:

json
{
  "name": "订单 API v2",
  "access_token_ttl": 7200
}

权限范围(Scope)管理

每个 API 资源可以定义多个权限范围,用于细粒度的权限控制。

查看权限范围

在资源编辑页面中查看该资源的所有权限范围。

API 调用:

GET /api/v1/resources/:id/scopes

创建权限范围

为资源添加新的权限范围。

字段必填说明
名称权限范围名称(如 read:orderswrite:orders
描述权限范围的说明

API 调用:

POST /api/v1/resources/:id/scopes

请求示例:

json
{
  "name": "read:orders",
  "description": "读取订单数据"
}

删除权限范围

删除资源的某个权限范围。删除后,已分配该权限范围的角色将失去此权限。

API 调用:

DELETE /api/v1/resources/:resourceId/scopes/:scopeId

删除资源

删除 API 资源将同时删除其下所有权限范围。此操作不可逆。

API 调用:

DELETE /api/v1/resources/:id

注意: 删除资源前,请确认没有角色仍在引用该资源的权限范围。

使用场景示例

定义微服务 API 资源

假设系统包含订单服务和用户服务:

  1. 创建资源 "订单 API",Indicator 为 https://api.example.com/orders
  2. 为订单 API 添加权限范围:read:orderswrite:ordersdelete:orders
  3. 创建资源 "用户 API",Indicator 为 https://api.example.com/users
  4. 为用户 API 添加权限范围:read:usersmanage:users
  5. 在角色管理中将对应的权限范围分配给不同角色

Released under the MIT License.