跳转至

MessageController(runtime 消息中心)

cn.myapps.message.runtime.message.controller.MessageController@Component@RequestMapping(produces=APPLICATION_JSON_VALUE))— runtime 风格的轻量「通知事项」API,对应类注释「messages RESTful」。继承 AbstractRuntimeController,方法返回统一 Resourcecn.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.mdcn.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")

请求示例

GET /runtime/messages/notices?accessToken=<token>&pageNo=1&linesPerPage=20 HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataMap<String,Object>(由 MessageRunTimeService.getNotices 返回,含分页结果集与计数)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": { "datas": [ { "id": "...", "summary": "..." } ], "rowCount": 8, "pageNo": 1, "linesPerPage": 20 },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "Server Error", "data": null, "errors": null }


2. 标记已读

将单条通知事项标记为已读。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/runtime/messages/notices/{id}/read(完整:{message-context}/runtime/messages/notices/{id}/read
  • 鉴权:是
  • Tag:消息中心执行模块

请求参数

参数名 位置 类型 必填 说明
id path string 通知 id(@PathVariable

请求示例

PUT /runtime/messages/notices/<id>/read?accessToken=<token> HTTP/1.1

响应

结构:统一 Resourcedatanull

成功示例

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "Server Error", "data": null, "errors": null }


3. 标记全部已读

将当前用户全部未读通知事项批量标记为已读。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/runtime/messages/notices/read(完整:{message-context}/runtime/messages/notices/read
  • 鉴权:是
  • Tag:消息中心执行模块

请求参数

参数名 位置 类型 必填 说明
无显式参数;当前用户从 token 解析

请求示例

PUT /runtime/messages/notices/read?accessToken=<token> HTTP/1.1

响应

结构:统一 Resourcedatanull

成功示例

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "Server Error", "data": null, "errors": 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:

["<id1>", "<id2>"]

请求示例

DELETE /runtime/messages/notices/delete?accessToken=<token> HTTP/1.1
Content-Type: application/json

["<id1>","<id2>"]

响应

结构:统一 Resourcedatanull

成功示例

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例(请求包体非合法 JSON 数组或解析失败):
{ "errcode": 406, "errmsg": "请求包体参数出错", "data": null, "errors": null }