模块说明
lang 返回当前站点语言的全量译文键值对({ "键": "译文" }),供客户端构建本地文案字典。服务端按内容指纹下发 ETag 与长缓存头,客户端配合 If-None-Match 可让二次请求直接 304 无体响应。
鉴权级别:可选(匿名可调)。
接口一览
| 方法 | URL | 鉴权 | 说明 |
|---|---|---|---|
| GET | /api/lang |
可选 | 获取当前语言全量译文 |
请求
无参数。
GET /api/lang
配合缓存协商:
GET /api/lang
If-None-Match: "abcdef123456"
响应
{
"code": "OK",
"message": "",
"data": {
"user_login": "会员登录",
"user_password": "密码",
"order_submit": "提交订单"
},
"errors": {},
"request_id": "9f2a5c8e1b3d7f40"
}
响应头(成功 200):
Cache-Control: public, max-age=31536000, immutable
ETag: "abcdef123456"
- 内容是
bootstrap.lang_v的完整版:lang_v未变时无需重新请求;变了才请求本接口; - 请求头带与当前缓存一致的
If-None-Match时,服务端返回304 Not Modified(无响应体),客户端继续使用本地副本; - 响应体可能变化(译文更新后 ETag 翻转),因此不要跨
lang_v缓存复用。
注意事项
- 本接口返回全量译文,数据量较大,务必依赖缓存机制,不要每次启动都请求;
- 译文内容与前台/后台同源(语言包文件),新增语言时接口自动切换(以站点当前语言为准);
- 键名不保证稳定(随版本增删),客户端只需按需取值,不应对键名做结构性假设。