三、 RESTFUL API & laravel (part 2) - amattsuyolo/cham GitHub Wiki

參考文章

心智圖內容將會不定期更新

LARAVEL 相關輔助整理

資源控制器

當我們需要建立一個影片控制器,專門掌控影片的所有動作如 :

  1. 顯示所有
  2. 儲存
  3. 顯示單個
  4. 更新
  5. 刪除

可以下以下指令

    laravel 指令 php artisan make:controller api/VideosController --api

不需要自行註冊每一個路由

只需要一行程式碼:

    Route::resource("videos","api\VideosController");

產生對應的路由名稱與方法如下

          Actions Handled By Resource Controller

          Verb	URI	Action	Route Name

          GET	/videos	index	videos.index

          POST	/videos	store	videos.store

          GET	/videos/{video}	show	videos.show

          PUT/PATCH	/videos/{video}	update	videos.update

          DELETE	/videos/{video}	destroy	videos.destroy

如果僅僅需要顯示所有與儲存功能,路由部分可以調整如下

  Route::resource('videos', 'VideosController')->only([
      'index', 'store'
  ]);

或是

  Route::resource('photos', 'PhotoController')->except([
      'show', 'update', 'destroy'
  ]);

API Resource

當你在建立一個 API 時,可能會需要一個位於 Eloquent 模型和實際回傳給使用者的 JSON 回應之間的轉換層。Laravel 的資源類別可以讓你更直觀且容易的將你的模型和模型集合轉換成 JSON。

https://laravel.com/docs/5.8/eloquent-resources

API Resource 最大的優點是解耦了數據格式與業務代碼的耦合,提高了代碼的複用性和可維護性,更多功能可以參考官方文檔,這些都只是帶你入門,更多功能的使用和發掘,有賴你在實踐中去探尋。

個人認為良好的應用response()->json(["msg"=>"success","data"=>["video_id"=>"2000121",.......])即可解決大部分問題,將回傳數據格式分離,對於不夠巨大的專案有點過度設計的味道 https://laravel.com/docs/5.8/responses

後續持續更新.........