Commit da366df
支持 Wikidata 格式的人物 ID 查詢並改進錯誤處理
為了兼容 Wikidata 的調用格式,修改 person API 以支持前置 0 的 7 位整數格式。
主要變更:
1. ID 驗證規則優化:
- 從嚴格的整數驗證改為正則表達式:/^\d{1,7}$/
- 現在支持:0001367、1367、0000001 等格式
- 保持原有的最小值驗證(>= 1)
2. 錯誤處理改進:
- HTML 模式:返回帶有錯誤列表的錯誤頁面,不再重定向到首頁
- JSON 模式:返回結構化的 JSON 錯誤響應
- 添加 .alert-danger 樣式用於顯示錯誤信息
3. 前端顯示優化:
- 在頁面頂部顯示驗證錯誤信息(紅色警告框)
- 錯誤信息清晰列出所有驗證失敗的原因
測試用例:
- ✅ /cbdbapi/person?id=0001367 → 正常顯示
- ✅ /cbdbapi/person?id=abc → 顯示錯誤頁面
- ✅ /cbdbapi/person?id=12345678 → 格式錯誤提示
- ✅ /cbdbapi/person?id=abc&o=json → JSON 錯誤響應
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 489adea commit da366df
2 files changed
Lines changed: 38 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
18 | 22 | | |
19 | 23 | | |
20 | 24 | | |
| |||
24 | 28 | | |
25 | 29 | | |
26 | 30 | | |
27 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
28 | 51 | | |
29 | 52 | | |
30 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
182 | | - | |
183 | | - | |
184 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| |||
282 | 282 | | |
283 | 283 | | |
284 | 284 | | |
285 | | - | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
286 | 295 | | |
287 | 296 | | |
288 | 297 | | |
| |||
0 commit comments