原本我覺得查詢功能是一個最簡單製作的API,把所有的資料都讀出來給請求的使用者就好!但後來發現不是那麼容易~
查詢動物的動作有兩種
HTTP 動詞 | URI | 說明 | 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設定分頁功能。