LLM 最強大的就是你給予適當的內容,它可以幫你延伸很多你沒注意到的問題,最近常常把需求稍微梳理過後,加上一段 prompt 讓他整理成 spec,再將結果調整一下變可以開 redmine 的票。
widget 設定完成後,若使用者將 widget 的欄位刪除,有機率會造成計算或使用錯誤,經討論後端要先行驗證欄位是否存在,查找有問題後一律回覆 422 給前端
---
你的角色是網路工程師。請協助將我提供的功能簡述,轉換成規格(spec)格式。轉換後的 spec 需包含以下幾個內容:
- 功能標題
- 功能簡述
- 實作建議
- 測試建議
- 其他注意事項
允許使用 emoji 輔助
# 📌 Widget 欄位存在性驗證(後端)
## 📝 功能簡述
當使用者完成 widget 設定後,如果後續手動刪除了 widget 所需的欄位,可能導致運算錯誤或使用體驗異常。後端需在每次相關操作前進行欄位存在性驗證,若必填欄位不存在,統一回傳 HTTP 422 錯誤給前端。
---
## 🛠️ 實作建議
1. **欄位驗證邏輯**
* 在 widget 運算、讀取前加入一段欄位檢查邏輯。
* 驗證所有 widget 設定中宣告的欄位是否存在於資料來源(如資料庫欄位、配置檔或動態欄位列表)。
* 若任一欄位不存在,立即中止流程並回傳 422。
2. **統一錯誤格式**
* 使用統一格式,例如:
```json
{
"message": "missing field",
"code": "CO-ME108",
"status": false
}
```
**此 message 以及 code 為示意。**
---
## 🧪 測試建議
1. **正常情境**
* 所有欄位都存在 → 回傳 200 並正常執行邏輯。
2. **單一欄位缺失**
* 刪除一個 widget 必要欄位 → 應回傳 422,且錯誤訊息不包含該欄位名稱。
3. **多個欄位缺失**
* 模擬多個欄位被刪除 → 應回傳 422,且錯誤訊息不包含該欄位名稱。
其實他寫了相當多建議,這是我整理過後的結果,那些建議不一定符合我們需求,但可以當作參考也是相當不錯。