本系列文章已集結成冊與鐵人賽文章差異內容,有以下幾點:
更新至Laravel 8、基礎的PHP重點筆記、加強製作API流程細節、加入程式設計模式,優化、重構程式碼的部分,並且於書籍前面的章節介紹Git。
讓您從製作第一個簡單的API到優化自己的程式碼,分享我的經驗給您,打造自己的最強大腦API,若有興趣的朋友可以參考看看
此篇文章同步發表於個人部落格
原本我覺得查詢功能是一個最簡單製作的API,把所有的資料都讀出來給請求的使用者就好!但後來發現不是那麼容易~
HTTP 動詞 | URL | 說明 | Controller |
---|---|---|---|
GET | /api/animal/1 | 查詢動物 ID 1 的資料 | show |
GET | /api/animal | 查詢系統目前的動物列表 | index |
單一資源比較簡單就把 animal 物件,查詢出來給使用者就可以了!
最多做一個Resource 來轉換一下要輸出的內容!(Resource這部分有點離題了!日後會有一篇寫 Resource 轉換回傳的JSON資料結構,先設計完成查詢API再說)
GET api/animal/2
AnimalController
public function show(Animal $animal)
{
return response($animal, Response::HTTP_OK);
}
show 傳入的物件 Laravel 會自動利用 Model 設定的主鍵去找出資料(主鍵預設id),以上面的請求來說,他會去尋找ID:2的資料,找到物件就可以做需要的商業邏輯,上面show的方法是看單一動物的資料,所以我目前就直接把找到的資料傳出來,就是這麼簡單!
接下來製作查詢動物清單的部分
AnimalController
public function index()
{
$animals = Animal::get();
return response(['animals' => $animals], Response::HTTP_OK);
}
先做一個簡單的方法,就是把動物全部讀出來就好!
這部份可能要看你的資料的狀況,例如商品的列表,商品一定非常非常多,所以一定要做個篩選以及分頁
如果像是顯示類別(貓、狗...),我自己是直接把它全部讀取出來,因為數量少,也不會去做篩選的動作。
明天先來為我們的查詢API設定分頁功能。