- 目標
加入 分頁、篩選、排序參數
改善 DTO,回傳更多細節
加上 錯誤處理與驗證
預備未來 Phase 3 DrugBank 交互查詢
🛠 工作項目
1. /api/recommendations API 強化
支援 Query Params:
?effectId=E001&page=1&size=10 → 分頁
?minGrade=B → 篩選最低證據等級
?sort=score,desc → 按分數排序(預設)
在 RecommendationService 裡加分頁與篩選邏輯
2. DTO 改進
RecommendationResponse
3. 錯誤處理與驗證
Controller 加上參數驗證:
缺少 effectId → 回 400
effectId 不存在 → 回 404
用 @ControllerAdvice + @ExceptionHandler 做統一錯誤格式:
4. 效能與可維護性
在 evidence 表上確認有索引:
5. 預備 Phase 3
設計 /api/interactions 空殼 Controller + DTO(先不實作 DB)
規劃 compound / drugbank_id 欄位未來怎麼查
✅ 驗收
/api/effects → 正常回 E001/E002
/api/recommendations?effectId=E001&page=1&size=2&minGrade=B
回傳只有 B 級以上的,分頁成功
/api/recommendations?effectId=NOPE
回 404 JSON 錯誤
整體 API 輸出格式 一致,前端可直接拿來渲染