5
Do you really know why you prefer REST over RPC? | API Handyman (apihandyman.io)
IngramChen 積分 2 編輯於

我最後都是混用。只有簡單的 CRUD 才會用 REST,其他很難用 resource 表達的通通用動詞 + POST (就是 RPC)

不過 url 都會是小寫英文 和 - 就是了。然後就算是 RPC , url 也會傾向用 /approve/user/{id} 而不是 /approveUser?id={id}

natsu 積分 0

不過 url 都會是小寫英文 和 - 就是了。然後就算是 RPC , url 也會傾向用 /approve/user/{id} 而不是 /approveUser?id={id}

我覺得如果 url 是 /user/{id}/approve + PATCH 應該就符合 REST 了吧

IngramChen 積分 0 編輯於

純 rest 要用名詞, 所以要改寫成 /user/{id}/approval

要講究純 rest 到最後變得像是在考文法一樣, 咬文嚼字, 我個人是不太喜歡浪費時間在這種地方啦。

而且用 PATCH 就對了嗎?approve user 這個動作有可能改到三個 Table 以上,不一定是只改 user.approved 這個 boolean flag 而已啊。

natsu 積分 0

純 rest 要用名詞, 所以要改寫成 /user/{id}/approval。

我是有看到用動詞的例子:

要講究純 rest 到最後變得像是在考文法一樣, 咬文嚼字, 我個人是不太喜歡浪費時間在這種地方啦。

說的也是 ...

而且用 PATCH 就對了嗎?approve user 這個動作有可能改到三個 Table 以上,不一定是只改 user.approved 這個 boolean flag 而已啊。

我只是覺得 approve 這個動作應該只是在 update 資料,所以用 PATCH 比較合適 ...

不過改三個 Table 有可能代表了同時修改三個資源,這部份 REST 目前也沒有規範到 ...

就像您說的那樣,最後會是 REST 和 RPC 混用吧