MessageController(runtime 消息中心)¶
cn.myapps.message.runtime.message.controller.MessageController(@Component,@RequestMapping(produces=APPLICATION_JSON_VALUE))— runtime 风格的轻量「通知事项」API,对应类注释「messages RESTful」。继承 AbstractRuntimeController,方法返回统一 Resource(cn.myapps.common.controller.Resource)。
- 基址:
${myapps.context-path.message:}/runtime/messages(完整:{message-context}/runtime/messages) - Tag:消息中心执行模块
- 鉴权:是(需 accessToken;详见 index.md「鉴权说明」)
- 响应结构:统一
Resource(见 ../index.md「统一响应结构」);异常经AbstractRuntimeController的@ExceptionHandler映射(404/500/40035/406)。
该控制器与 message.md(
cn.myapps.message.message.controller.MessageController)同名但**包路径与职能均不同**:本控制器为 runtime 风格的「通知事项」轻量 API(4 端点),返回统一Resource;前者为消息/公告 CRUD(9 端点),返回Map。
AbstractRuntimeController.getUser()仅Security.getUserIdFromToken(request)装入MessageUser(仅设id),不回退debugToken、不调 Feign。
1. 获取通知事项¶
分页查询当前用户的通知事项列表。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/runtime/messages/notices(完整:{message-context}/runtime/messages/notices) - 鉴权:是
- Tag:消息中心执行模块
注:源码
@Operation(summary="运行执行前脚本")系复制粘贴的笔误,按方法名getNotices与 Javadoc「获取通知事项」记述。
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| pageNo | query | int | 否 | 1 | 当前页(@RequestParam(required=false, defaultValue="1")) |
| linesPerPage | query | int | 否 | 10 | 每页显示条数(@RequestParam(required=false, defaultValue="10")) |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:Map<String,Object>(由 MessageRunTimeService.getNotices 返回,含分页结果集与计数)。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": { "datas": [ { "id": "...", "summary": "..." } ], "rowCount": 8, "pageNo": 1, "linesPerPage": 20 },
"errors": null
}
2. 标记已读¶
将单条通知事项标记为已读。
- 接口类型:REST 资源
- 请求方式:
PUT - 请求路径:
/runtime/messages/notices/{id}/read(完整:{message-context}/runtime/messages/notices/{id}/read) - 鉴权:是
- Tag:消息中心执行模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| id | path | string | 是 | 通知 id(@PathVariable) |
请求示例¶
响应¶
结构:统一 Resource。
data:null。
成功示例:
失败示例:3. 标记全部已读¶
将当前用户全部未读通知事项批量标记为已读。
- 接口类型:REST 资源
- 请求方式:
PUT - 请求路径:
/runtime/messages/notices/read(完整:{message-context}/runtime/messages/notices/read) - 鉴权:是
- Tag:消息中心执行模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| — | — | — | — | 无显式参数;当前用户从 token 解析 |
请求示例¶
响应¶
结构:统一 Resource。
data:null。
成功示例:
失败示例:4. 删除通知(可批量)¶
按通知 id 数组批量删除。请求体为 JSON 数组字符串,服务端用 JsonPath parse(content).json() 解析为 List<String> 再转 String[]。
- 接口类型:REST 资源
- 请求方式:
DELETE - 请求路径:
/runtime/messages/notices/delete(完整:{message-context}/runtime/messages/notices/delete) - 鉴权:是
- Tag:消息中心执行模块
请求体¶
请求体为 JSON 数组字符串(@RequestBody String content),元素为通知 id:
请求示例¶
DELETE /runtime/messages/notices/delete?accessToken=<token> HTTP/1.1
Content-Type: application/json
["<id1>","<id2>"]
响应¶
结构:统一 Resource。
data:null。
成功示例:
失败示例(请求包体非合法 JSON 数组或解析失败):