用大白話講端點和 REST
一個**端點(endpoint)**就是選單上的一道菜。它就是一個做某件具體事情的 (統一資源定位符)。比如:
https://api.weather.com/forecast—— 獲取一份天氣預報https://api.weather.com/cities—— 列出可用的城市
同一個廚房,不同的菜。每個端點就是一項能力。
你會接觸到的大多數 ,都遵循一種寬鬆的風格,叫 (表述性狀態轉移)。你不需要學術定義,你只需要兩個想法:
- URL 給一個東西命名(一個"資源")—— 一個使用者、一個訂單、一份天氣預報。
- **動詞說明你想拿它做什麼。**這些動詞就是 (超文本傳輸協議)方法,和"網路是怎麼運作的"那章裡講的是同一批:
GET—— 讀取某個東西(取一份天氣預報)。安全;什麼都不改變。POST—— 建立某個東西(下一個訂單、註冊一個使用者)。PUT/PATCH—— 更新某個已經存在的東西。DELETE—— 刪除某個東西。
所以 GET /orders/42 的意思是"讀取 42 號訂單",而 DELETE /orders/42 的意思是"刪掉它"。同一個名詞,不同的動詞,效果完全不同。當你讀 API 文件或一段 diff 時,那兩個詞——方法和 URL——就告訴了你一個請求所做的大部分事情。