105 lines
3.4 KiB
Markdown
105 lines
3.4 KiB
Markdown
# 通知(お知らせ)查询接口
|
|
|
|
读取 worker 定时抓取的骏河屋「お知らせ一覧」(action_news) 通知。worker 翻页抓取后按
|
|
`data_id` 去重写入 Redis,本接口只读返回,不删除、不消费,可重复拉取。
|
|
|
|
## 请求
|
|
|
|
| 项 | 值 |
|
|
| --- | --- |
|
|
| 方法 | `GET` |
|
|
| 路径 | `/api/news` |
|
|
| 鉴权 | 请求头 `Authorization: Bearer <token>`(token 由服务端 `SURUGAYA_BEARER_TOKEN` 配置) |
|
|
|
|
### Query 参数
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
| --- | --- | --- | --- |
|
|
| `limit` | int | 否 | 返回条数上限,范围 `1`~`500`;省略则返回全部。结果按 `data_id` 倒序(新→旧),`limit` 取最新的若干条 |
|
|
|
|
### 示例
|
|
|
|
```
|
|
GET /api/news?limit=20
|
|
Authorization: Bearer NilsO8Il8yoT1wazJFs2eeOmlPRfWuSx
|
|
```
|
|
|
|
## 成功响应 `200`
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"msg": "success",
|
|
"code": 0,
|
|
"data": [
|
|
{
|
|
"data_id": "869431007",
|
|
"date": "2026/06/12",
|
|
"message": "【販売】(取引番号:S2606115133)発送準備中です。",
|
|
"data_type": "2",
|
|
"data_url": "/pcmypage/action_sell_search/detail?trade_code=S2606115133",
|
|
"trade_code": "S2606115133",
|
|
"account_id": "trdian023@tokugen.jp",
|
|
"fetched_at": 1781348570
|
|
},
|
|
{
|
|
"data_id": "868997716",
|
|
"date": "2026/06/05",
|
|
"message": "【販売】(取引番号:M2606056999)商品の注文を受け付けました。",
|
|
"data_type": "2",
|
|
"data_url": "/pcmypage/action_sell_search/detail?trade_code=M2606056999",
|
|
"trade_code": "M2606056999",
|
|
"account_id": "trdian023@tokugen.jp",
|
|
"fetched_at": 1781348570
|
|
},
|
|
{
|
|
"data_id": "860001234",
|
|
"date": "2026/01/01",
|
|
"message": "【お知らせ】メンテナンスのお知らせ",
|
|
"data_type": "1",
|
|
"data_url": "/pcmypage/action_news_detail?id=860001234",
|
|
"trade_code": null,
|
|
"account_id": "trdian023@tokugen.jp",
|
|
"fetched_at": 1781348570
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### data 字段说明
|
|
|
|
| 字段 | 类型 | 说明 |
|
|
| --- | --- | --- |
|
|
| `data_id` | string | 骏河屋侧通知唯一标识(单调递增),去重与排序依据 |
|
|
| `date` | string | 通知日期,格式 `YYYY/MM/DD` |
|
|
| `message` | string | 通知文案原文(日文) |
|
|
| `data_type` | string | 骏河屋侧 `data-type` 原值(如 `2`=交易类通知) |
|
|
| `data_url` | string \| null | 骏河屋侧 `data-url`(详情相对路径) |
|
|
| `trade_code` | string \| null | 从 `data_url` 解析的交易单号;非交易类通知为 `null` |
|
|
| `account_id` | string | 该通知所属账号(骏河屋登录邮箱) |
|
|
| `fetched_at` | int | worker 抓取写入时间(Unix epoch 秒) |
|
|
|
|
> 说明
|
|
> - 列表按 `data_id` 数值倒序返回(最新在前)。
|
|
> - 同一 `data_id` 只保留一条,重复抓取会以最新内容覆盖,调用方可安全重复拉取。
|
|
> - 需要区分账号时按 `account_id` 过滤即可(当前为登录邮箱)。
|
|
|
|
## 错误响应
|
|
|
|
统一响应体结构:`success=false`,`code` 为业务错误码,`data=null`。
|
|
|
|
| HTTP | code | 场景 | 示例 msg |
|
|
| --- | --- | --- | --- |
|
|
| 401 | 1001 | 缺少/无效 Bearer Token | `Invalid token` |
|
|
| 422 | 1002 | `limit` 越界(不在 1~500) | `limit: Input should be less than or equal to 500` |
|
|
| 500 | 500 | 服务端未配置 Redis,通知不可读 | `Redis 未配置` |
|
|
|
|
```json
|
|
{
|
|
"success": false,
|
|
"msg": "Redis 未配置",
|
|
"code": 500,
|
|
"data": null
|
|
}
|
|
```
|