Notice API 文档

概述

Notice API 是 ZerOS 后端服务提供的系统公告获取接口,供 server-notice 前端服务定期调用。API 返回当前激活的最新公告,系统根据公告等级决定是否向用户展示通知。

基本信息

| 项目 | 说明 | |------|------| | 路径 | /api/notice | | 方法 | GET | | 认证 | 无需认证(已加入 Spring Security 白名单) | | CORS | 支持跨域(@CrossOrigin(origins = "*")) | | 响应格式 | JSON |

请求参数

无请求参数。

响应格式

{
  "code": 200,
  "msg": "success",
  "data": {
    "level": 2,
    "title": "Test",
    "content": "ZerOS 系统公告内容",
    "subTime": "2026-02-16T18:34:21.405386"
  }
}

响应字段说明

| 字段 | 类型 | 说明 | |------|------|------| | code | int | 状态码,200 表示成功 | | msg | string | 状态信息 | | data | object | 公告数据,无激活公告时为 null | | data.level | int | 公告等级:0=仅日志,1=通知 8 秒,2=通知不自动关闭 | | data.title | string | 公告标题 | | data.content | string | 公告内容 | | data.subTime | string | 公告发布时间(ISO 8601 格式),用于去重 |

状态码

| 状态码 | 说明 | |--------|------| | 200 | 成功返回 | | 500 | 服务器内部错误 |

调用示例

cURL

curl -X GET http://localhost:8088/api/notice

JavaScript (fetch)

fetch('http://localhost:8088/api/notice')
  .then(res => res.json())
  .then(data => {
    if (data.data) {
      console.log('最新公告:', data.data.title);
      console.log('等级:', data.data.level);
      console.log('发布时间:', data.data.subTime);
    }
  });

响应示例

{
  "code": 200,
  "msg": "success",
  "data": {
    "level": 2,
    "title": "系统维护通知",
    "content": "ZerOS 将于今晚 22:00-24:00 进行系统维护,届时部分功能可能不可用。",
    "subTime": "2026-02-16T18:34:21.405386"
  }
}

前端使用说明

server-notice.js 服务会每 3 分钟自动调用此接口获取公告:

  • 接口地址配置在脚本常量 ANNOUNCE_API_URL
  • 支持单条或数组格式的 data 字段
  • 使用 subTime 进行去重,已接收过的公告不会重复弹通知

相关文档

最后更新于: 2026-02-25 提出修改建议