58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# rdms-system-api
|
||
|
||
**概述**
|
||
本模块定义了 System(系统)模块对其他模块开放的公共 RPC API 面。它是一个纯 API 的 jar 包:包含 Feign 客户端接口、请求/响应 DTO,以及枚举/常量。不包含 controller 或 service 的实现。
|
||
|
||
**这里包含什么**
|
||
- 位于 `com.njcn.rdms.module.system.api.*` 下的 Feign 客户端接口
|
||
- 位于 `com.njcn.rdms.module.system.api.*.dto` 下的 DTO
|
||
- 位于 `com.njcn.rdms.module.system.enums.*` 下的系统枚举和常量
|
||
|
||
**API 分组**
|
||
- `config`:`ConfigApi`,用于根据 key 读取配置值
|
||
- `dept`:`DeptApi` 和 `PostApi`,用于部门与岗位数据及校验
|
||
- `dict`:`DictDataApi`,用于字典数据校验(继承 `DictDataCommonApi`)
|
||
- `file`:`FileApi`,用于文件创建与预签名 URL
|
||
- `logger`:`LoginLogApi` 和 `OperateLogApi`(继承 `OperateLogCommonApi`)
|
||
- `notify`:`NotifyMessageSendApi`,用于站内消息发送
|
||
- `permission`:`PermissionApi`(继承 `PermissionCommonApi`)以及 `RoleApi`
|
||
- `user`:`AdminUserApi`,用于管理员用户查询与校验
|
||
- `websocket`:`WebSocketSenderApi`,用于推送 WebSocket 消息
|
||
|
||
**关键常量**
|
||
- `ApiConstants.NAME = "system-server"`(必须与 system 服务的 `spring.application.name` 保持一致)
|
||
- `ApiConstants.PREFIX = "/rpc-api/system"`
|
||
- `ApiConstants.VERSION = "1.0.0"`
|
||
|
||
**用法**
|
||
1. 在调用方模块中添加依赖。
|
||
|
||
```xml
|
||
<dependency>
|
||
<groupId>com.njcn</groupId>
|
||
<artifactId>rdms-system-api</artifactId>
|
||
</dependency>
|
||
```
|
||
|
||
2. 在调用方服务中启用 Feign 客户端扫描。
|
||
|
||
```java
|
||
@EnableFeignClients(basePackages = "com.njcn.rdms.module.system.api")
|
||
```
|
||
|
||
3. 注入并调用 API 接口。
|
||
|
||
```java
|
||
@Resource
|
||
private AdminUserApi adminUserApi;
|
||
|
||
public AdminUserRespDTO loadUser(Long id) {
|
||
return adminUserApi.getUser(id).getCheckedData();
|
||
}
|
||
```
|
||
|
||
**备注**
|
||
- 所有方法都返回 `CommonResult<T>`。按需使用 `getCheckedData()` 或 `checkError()`。
|
||
- 有些 API 提供了默认的辅助方法(例如 `FileApi.createFile(...)`、`WebSocketSenderApi.send(...)`)。
|
||
- `DictDataApi`、`OperateLogApi`、`PermissionApi` 继承了来自 `rdms-framework` 的通用 RPC 接口。
|