iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
AI & Data

ML/DL實作-「營養抗老」專題製作系列 第 14

Day 14_前後端 API 完善與部署前驗收

  • 分享至 

  • xImage
  •  

🎯 目標

強化 API 可用性(分頁 / 篩選 / 錯誤碼一致化)

加上簡單 健康檢查 (healthcheck) 與 版本資訊 端點

撰寫基本 單元測試 + 整合測試,確保 API 穩定

預備部署前的驗收腳本

🛠 工作項目
1) API 增強

/api/effects

支援 ?category=皮膚抗老 篩選

/api/recommendations

支援分頁:?effectId=E002&page=1&size=10

回傳結構新增 total、items:
2) 錯誤處理一致化

延續 Day 12 的 @ControllerAdvice

新增 自訂 Exception:

EffectNotFoundException → 回 404

DataIntegrityException → 回 409

統一 JSON 格式:
3) 健康檢查與版本資訊

/actuator/health → 回應 DB 狀態 OK/FAIL

/actuator/info → 回應 app=MySpringbootmall, version=0.0.1, model.version(若有 ML)

4) 測試計畫

單元測試 (JUnit 5 + Spring Boot Test):

EffectDaoTest.findAll() → 驗證最小資料集有 E001/E002

EvidenceDaoTest.findByEffect() → 驗證 E002 回至少一筆

整合測試 (MockMvc):

GET /api/effects 回 200 且 JSON 包含 "effectId":"E001"

GET /api/recommendations?effectId=E002 回 200 且 items 非空

5) 部署前驗收腳本

新增 scripts/verify_day14.sh,檢查:
✅ 驗收標準

/api/effects 支援篩選分類

/api/recommendations 支援分頁並帶 total

所有錯誤 → JSON 格式一致

mvn test 全部通過

scripts/verify_day13.sh 執行後輸出包含 E001/E002 與 health=UP

📦 交付物

controller/EffectController.java 增加 category 篩選

controller/RecommendationController.java 支援分頁回傳格式

exception/EffectNotFoundException.java、DataIntegrityException.java

src/test/java/.../EffectDaoTest.java

src/test/java/.../EvidenceDaoTest.java

scripts/verify_day13.sh

上一篇
Day 13_模型治理與灰度釋出(版本化、切換、評估、回滾)
系列文
ML/DL實作-「營養抗老」專題製作14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言