三、 RESTFUL API & laravel (part 2) - amattsuyolo/cham GitHub Wiki
參考文章
-
[不是工程師] 休息(REST)式架構? 寧靜式(RESTful)的Web API是現在的潮流?
-
為什麼要用 RESTful
-
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/106509/
-
Laravel 建立 RESTful API
-
https://hackmd.io/@8irD0FCGSQqckvMnLpAmzw/Hk8QeMNLz?type=view
-
簡明RESTful API設計要點
心智圖內容將會不定期更新
LARAVEL 相關輔助整理
資源控制器
當我們需要建立一個影片控制器,專門掌控影片的所有動作如 :
- 顯示所有
- 儲存
- 顯示單個
- 更新
- 刪除
可以下以下指令
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
後續持續更新.........