參考書:使用Laravel 8 PHP主流框架打造RESTful API-博碩文化-王盛立(著)iT幫網址
API:提供一個應用介面(網址)讓客戶端的程式操作。就像點餐一樣,將菜單以正確方式發給指定菜口,菜口收到正確菜單就會出菜,菜口設計的好,還會告訴你寫錯了。
Web API:透過HTTP協議提供了一種標準的方式,使得不同平台的應用程式能夠相互通信。
例如:中央氣象局開放資料平臺之資料擷取API(使用GET傳送參數)、現在正夯的OpenAI(使用POST傳送參數)
可以通過對方指定的方法連到特定位置以取得或傳送資料,傳送內容多半為JSON或XML兩種格式內容。
REST風格:全文是Representational State Transfer(表現層狀態轉換),是Roy Thomas Fielding博士於2000年在他的博士論文中提出來的一種全球資訊網軟體架構風格,目的是便於不同軟體/程式在網路(例如網際網路)中互相傳遞資訊。
原則如下:
- 定義一個可以被操作的資源物件(Object)。
- 資源的物件資料運用一組固定動作(Action)以下簡稱CRUD。
創建Creat、讀取Read、更新Update、刪除Delete(看到這個讓我想起資料庫) - 可請求資源的網址(URI)
- 使用JSON、XML格式做資料傳遞(我也以JSON為主😆)
Http動詞對應動作:
- GET: 讀取,查詢資源
- POST: 新增資料
- DELETE: 刪除資源
- PUT: 替換資源
- PATCH: 更新資源
以文章RESTful API為例:
HTTP動詞 | URI | 說明 |
GET | /api/v1/posts | 查詢所有文章 |
POST | /api/v1/posts | 建立文章 |
GET | /api/v1/posts/1 | 查詢編號為1的文章 |
DELETE | /api/v1/posts/1 | 刪除編號為1的文章 |
PUT | /api/v1/posts/1 | 替換編號為1的文章 |
PATCH | /api/v1/posts/1 | 更改編號為1的內容 |
用於測試API功能是否正常,可使用Postman。
Mac安裝(需安裝:brew):
brew instal postman
安裝後並開啟,要求註冊畫面中,可選擇下方灰色提示略過登入可直接使用程式。