![](/img/trans.png)
[英]REST API: Should we have separate API for result and result count?
[英]REST API: Should single API have multiple responsibilities?
我們有分類商品網站,我們沒有登錄但用戶可以查看其他用戶列出的產品。 要查看其他用戶的詳細信息,他們必須提供他們的聯系方式。 為了驗證用戶是否提供了正確的手機號碼,我們將 OTP 代碼發送回該號碼。 API 流程如下所示:
POST /api/lead/
{
"stockId": 123,
"mobile": 9890384328
}
如果已驗證“移動”,則 API 的響應(響應代碼:200):
{
"sellerName": "xyz",
"sellerMobile": "+123232312",
"sellerAddress": "21, park street, new york"
}
如果“移動”尚未驗證,則響應(響應代碼:403):
{
"OTP verification required. OTP is sent to the mobile number."
}
請求有效載荷:
{
"stockId": 123,
"mobile": 9890384328,
"otp": 1234
}
如果 OTP 正確,它會發回賣家詳細信息作為響應。 如果提供的 OTP 不正確,則響應為:
{
"Incorrect OTP."
}
我在這個 API 設計中看到了幾個問題:
有人可以建議哪種方法更好嗎?
簡單的回答:沒有。
它被稱為單一責任原則是有原因的。
在您的公共 API 中允許多個責任意味着 API“端點”必須了解不同的責任,以便“分派”這些方面中的每一個的“正確”實現。 或者您允許您的雙重職責 API 設計通過提供該實現的單一事物來破壞您的實現。
除此之外:當你有不同的職責時,OK/error 返回碼的范圍會變得更加復雜。 這只會讓“一切”變得更加困難。 為您編寫測試 - 也為使用您的 API 的客戶編寫測試。
在您的情況下,用戶執行以下操作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.