[英]i want to call two functions on one click and make sure they will work one after another
[英]Is it better to expand an existing REST Api url or make another one if i want to archive two diferent but similar functionalities?
我將用一個真實的生活場景來解釋我的觀點。 我有一堆通知項,以及一個以 json 形式返回所有字段的 API。 假設這個 api 的路由是 /api/nots
您也可以指定要搜索的用戶 ID,以查看它是否有任何通知。
api/nots?id=1
所有通知都屬於一個用戶或一組用戶。 因此,例如從上面的請求返回的 json 將是這樣的:
{
"id": 1,
"name" : "Notification for John Doe",
"date": "1-1-2021"
"destinataries" : "johndoe@example.com",
"readed" : 1
}
“已讀”字段是困擾我的一個字段,假設此通知最終會出現在您手機上的列表中,並且根據“已讀”字段是否為真,通知中會出現一個綠色勾號。
創建時的所有通知都將讀取的字段預設為 false,因此我需要一個 api 將該值更改為 true。 我有兩種方法可以這樣做,但我不知道哪種方法更有效。
第一個是創建另一個路由只是為了更改值,您可以在其中指定通知的 id,例如:
api/update-nots?id=123
另一個是重用第一個 api (api/nots) 並使其執行兩種不同的操作(通過 id 搜索 nots 並更改通知讀取值)。
api/nots?set_readed=123
哪種方式更好?
如您所知,有很多方法可以做所有事情,在我看來這將是最好的選擇:
GET ...api/users/<user_n>/nots // Get all user nots
PUT ...api/nots/<not_n> // Update a specific not.
payload = { readed: true }
為什么? 在我看來,更具可讀性,因為: api/nots?id=1
實際上你不知道你的請求是關於不是第一還是關於用戶或關於組(為什么不呢?:))。 所以,保持可讀性你的 api,更多的語義。 通過上面的例子,你可以理解方法和路由,通過id獲取所有用戶nots,並更新一個。 通過這種方式,您將使用其他操作擴展您的基本行為,例如“記住我之前”,這可能是帶有某個時間標記的更新到其他時間,或者您可以使用/nots
等使用所有 nots 等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.