Web技術基礎
符合REST概念的Web API設計,下列何者適當?
- A像 /getUser?id=42 或 /deleteUser?id=42 那樣,把操作名稱放進URL,全部以GET送出
- B以 /users/42 這類URL表示使用者資源,並以HTTP方法表示操作,例如以GET取得、以DELETE刪除
- C讓伺服器記住每個用戶端先前請求的內容,下一個請求只送出以此為前提的簡短命令
查看答案與解析
正確答案:B. 以 /users/42 這類URL表示使用者資源,並以HTTP方法表示操作,例如以GET取得、以DELETE刪除
REST把處理的對象當作資源以URL表示,並以GET(取得)、POST(建立)、PUT或PATCH(更新)、DELETE(刪除)等HTTP方法表示對資源的操作。例如以 GET /users/42 取得資源,以 POST /users 建立新使用者時,伺服器回傳201 Created與新資源的URL。每個請求都要設計成包含處理所需全部資訊的無狀態請求。若以GET進行刪除之類的操作,光是連結的預先載入或爬蟲的存取,就可能讓資料消失。
- A. 把操作名稱放進URL的設計與REST的概念不同。此外,以GET刪除可能因預先載入等原因而被意外執行。
- B. 正確。以URL表示資源,以HTTP方法表示操作。
- C. REST讓每個請求彼此獨立,設計成伺服器不以先前請求為前提的無狀態形式。