1.8 KiB
1.8 KiB
租户管理 API 使用说明
通用约定
成功响应
所有成功响应使用 common-telemetry 的统一包装:
{
"code": 0,
"message": "Success|Created|Accepted",
"data": {},
"trace_id": null
}
错误响应
错误响应由 AppError 统一转换为 JSON:
{
"code": 30000,
"message": "Invalid request parameters: ...",
"details": "...",
"trace_id": null
}
常见错误码(节选,来自 common-telemetry):
- 20006:缺少认证 Header(
Authorization) - 20003:无权限(403)
- 30000:请求参数错误(400)
- 30002:资源不存在(404)
- 10001:数据库错误(500)
认证与租户上下文
- 受保护接口需要:
Authorization: Bearer <access_token>
- 租户上下文优先来自 Token 的
tenant_idclaim - 兼容
X-Tenant-ID:- 如果同时传
X-Tenant-ID与 Token,则必须一致,否则返回 403
- 如果同时传
接口列表
1) 租户注册(公共)
POST /tenants/register
请求体:
{
"name": "Tenant A",
"config": {
"theme": { "primary": "#1d4ed8" },
"password_policy": { "min_len": 12 }
}
}
响应:TenantResponse
2) 获取当前租户信息(需要 tenant:read)
GET /tenants/me
请求头:
Authorization: Bearer <access_token>X-Tenant-ID: <uuid>(可选)
3) 更新当前租户信息(需要 tenant:write)
PATCH /tenants/me
请求体:
{
"name": "New Tenant Name",
"config": { "theme": { "primary": "#0ea5e9" } }
}
4) 变更当前租户状态(需要 tenant:write)
POST /tenants/me/status
请求体:
{ "status": "active|disabled|suspended" }
5) 删除当前租户(需要 tenant:write)
DELETE /tenants/me
说明:当前实现为物理删除。生产建议改为软删除并触发异步数据清理流程。