我被要求爲前端團隊創建一個端點RESTfull,它將向我發送有關用戶表單的信息。REST API中的PUT和POST。它們只用於語義分離嗎?
有很多的場景,但我會解釋只有1個來試圖解決我的問題:
- 他們會送我一個包含了很多關於用戶數據的數組。例如userFirstName和userLastName。我需要檢查用戶是否存在於數據庫中。如果存在,請更新表單中發送的所有數據。如果用戶不存在,請在表中創建它,然後在所有相關表內創建與新用戶相關的信息。
- 如果PUT更新數據
- 後,如果插入數據
我一定要告訴他們什麼動詞:
因此,在這種情況下創建一個端點時,我們可以有兩種可能性他們應該在調用我的端點時使用,如果是PUT或POST。 我可以給他們POST並在這個過程中做一些更新,或者我可以給他們一個PUT並做一些INSERT。
基於RESTfull標準,不應該這樣做。但除了最佳實踐標準(要語義化)之外,還有其他限制需要評估嗎?
「任何其他約束要評估」 - 我不這麼認爲。兩者都會完成這項工作。看來,你在這裏不可能是純潔的。所以只需選擇一個並使用它。我建議POST更「通用」。 –