- 新增API端点参考文档,涵盖权限、卡密、订单、商户、监控、限制等模块 - 详细说明Apple卡密充值处理流程,包括提交、查询、回调和轮询接口 - 描述充值订单状态机及生命周期,支持超时重试和状态迁移 - 介绍签名验证、幂等控制及重复卡密防刷单策略 - 增加商户配置管理、历史记录查询和错误处理机制说明 - 提供API使用示例代码及客户端实现指导 - 删除过时的.drone.yml.bak文件,清理无用配置 - 添加.dockerignore忽略指定目录和文件
9.2 KiB
租户管理API
**本文档中引用的文件** - [tenant.go](file://api/authority/v1/tenant.go) - [authority_v1_tenant_create.go](file://internal/controller/authority/authority_v1_tenant_create.go) - [authority_v1_tenant_update.go](file://internal/controller/authority/authority_v1_tenant_update.go) - [authority_v1_tenant_delete.go](file://internal/controller/authority/authority_v1_tenant_delete.go) - [authority_v1_tenant_list.go](file://internal/controller/authority/authority_v1_tenant_list.go) - [sys_user.go](file://internal/model/sys_user.go) - [v_1_sys_user.go](file://internal/model/entity/v_1_sys_user.go) - [auth.go](file://internal/middleware/auth.go)目录
介绍
本文档详细描述了租户管理API的设计与实现,涵盖租户的增删改查操作。系统采用多租户架构,通过统一的权限控制机制实现不同客户或组织之间的资源隔离。API设计遵循RESTful原则,使用标准HTTP方法进行资源操作,并通过统一的认证机制确保安全性。尽管当前实现中各操作仍返回"未实现"状态,但接口定义和架构设计已完整,为后续功能开发提供了清晰的蓝图。
项目结构
系统采用分层架构设计,将API定义、业务逻辑和数据访问分离。租户管理功能主要分布在API层和控制器层,通过清晰的包结构组织相关功能。
graph TD
subgraph "API层"
A[api/authority/v1]
A --> B[tenant.go]
A --> C[role.go]
A --> D[menu.go]
end
subgraph "控制器层"
E[internal/controller/authority]
E --> F[authority_v1_tenant_create.go]
E --> G[authority_v1_tenant_update.go]
E --> H[authority_v1_tenant_delete.go]
E --> I[authority_v1_tenant_list.go]
end
subgraph "模型层"
J[internal/model]
J --> K[sys_user.go]
J --> L[entity/v_1_sys_user.go]
end
subgraph "中间件层"
M[internal/middleware]
M --> N[auth.go]
end
B --> F
B --> G
B --> H
B --> I
K --> E
N --> E
图示来源
本节来源
核心组件
租户管理API的核心组件包括请求/响应结构体、控制器方法和认证中间件。这些组件共同构成了租户管理功能的基础框架。
本节来源
架构概述
系统采用典型的MVC架构模式,各层职责分明。API层定义接口契约,控制器层处理业务逻辑,模型层管理数据结构,中间件层负责横切关注点如认证授权。
graph TD
Client[客户端] --> API[API接口]
API --> Auth[认证中间件]
Auth --> Controller[控制器]
Controller --> Service[服务层]
Service --> DAO[数据访问对象]
DAO --> DB[(数据库)]
API -.->|TenantListReq| Controller
API -.->|TenantCreateReq| Controller
API -.->|TenantUpdateReq| Controller
API -.->|TenantDeleteReq| Controller
style API fill:#f9f,stroke:#333
style Auth fill:#ff9,stroke:#333
style Controller fill:#9ff,stroke:#333
图示来源
详细组件分析
租户管理操作分析
租户管理API提供了完整的CRUD操作接口,每个操作都有明确的HTTP方法、URL路径和参数结构。
租户创建操作
classDiagram
class TenantCreateReq {
+string path : /auth/tenant/create
+string method : post
+string tags : 用户信息
+string summary : 创建用户信息
}
class TenantCreateRes {
+string json : application/json
}
class ControllerV1 {
+TenantCreate(ctx, req) (res, err)
}
TenantCreateReq --> ControllerV1 : "作为参数"
ControllerV1 --> TenantCreateRes : "返回结果"
图示来源
租户更新操作
classDiagram
class TenantUpdateReq {
+string path : /auth/tenant/update
+string method : post
+string tags : 用户信息
+string summary : 修改用户信息
+CommonIntId
}
class TenantUpdateRes {
+string json : application/json
}
class ControllerV1 {
+TenantUpdate(ctx, req) (res, err)
}
TenantUpdateReq --> ControllerV1 : "作为参数"
ControllerV1 --> TenantUpdateRes : "返回结果"
图示来源
租户删除操作
classDiagram
class TenantDeleteReq {
+string path : /auth/tenant/delete
+string method : delete
+string tags : 用户信息
+string summary : 删除用户信息
+CommonIntId
}
class TenantDeleteRes {
+string json : application/json
}
class ControllerV1 {
+TenantDelete(ctx, req) (res, err)
}
TenantDeleteReq --> ControllerV1 : "作为参数"
ControllerV1 --> TenantDeleteRes : "返回结果"
图示来源
租户查询操作
classDiagram
class TenantListReq {
+string path : /auth/tenant/getList
+string method : get
+string tags : 用户信息
+string summary : 获取用户信息
+CommonPageReq
}
class TenantListRes {
+string json : application/json
}
class ControllerV1 {
+TenantList(ctx, req) (res, err)
}
TenantListReq --> ControllerV1 : "作为参数"
ControllerV1 --> TenantListRes : "返回结果"
图示来源
本节来源
- tenant.go
- authority_v1_tenant_create.go
- authority_v1_tenant_update.go
- authority_v1_tenant_delete.go
- authority_v1_tenant_list.go
依赖分析
租户管理功能依赖于多个核心组件,包括认证中间件、用户模型和基础服务接口。
graph TD
A[TenantCreateReq] --> B[ControllerV1.TenantCreate]
C[TenantUpdateReq] --> D[ControllerV1.TenantUpdate]
E[TenantDeleteReq] --> F[ControllerV1.TenantDelete]
G[TenantListReq] --> H[ControllerV1.TenantList]
B --> I[认证中间件]
D --> I
F --> I
H --> I
B --> J[ISysUser.Add]
D --> K[ISysUser.Edit]
F --> L[ISysUser.Delete]
H --> M[ISysUser.List]
I --> N[Token验证]
I --> O[白名单检查]
style A fill:#f96,stroke:#333
style C fill:#f96,stroke:#333
style E fill:#f96,stroke:#333
style G fill:#f96,stroke:#333
图示来源
本节来源
性能考虑
虽然当前实现尚未完成,但架构设计已考虑性能优化因素。API层与控制器层的分离有助于缓存策略的实施,而统一的认证中间件可以集中管理会话状态。分页查询接口的设计也考虑了大数据量场景下的性能表现。建议在完整实现时采用连接池、查询缓存和异步处理等技术进一步提升系统性能。
故障排除指南
当前租户管理API的所有操作均返回"未实现"错误,这是预期行为,表明功能尚未完成开发。系统提供了统一的错误处理机制,所有错误都通过gerror.NewCode包装并返回标准错误码。认证相关的错误会记录详细日志,便于排查问题。白名单机制确保了关键接口的可访问性,即使在认证系统出现问题时也能保证核心业务的正常运行。
本节来源
结论
租户管理API的架构设计完整且合理,为多租户系统的实现奠定了良好基础。接口定义清晰,层次结构分明,具备良好的可扩展性和可维护性。下一步开发应聚焦于实现控制器中的业务逻辑,完善数据访问层,并建立完整的测试体系。同时建议补充API文档和使用示例,以便于其他开发人员快速理解和使用该功能。