最近用 Laravel 寫了一段時間的 API,總結一下本身的心得吧。php
Route::prefix('v1')->group(function () { // more });
一個簡單的接口示例 css
jwt-auth
時有疑問,Laravel自帶的token驗證使用的是數據庫api_token字段驗證,而不見jwt-auth
須要這個
QAQ
php artisan jwt:secret
生成了祕鑰api
的路由Route::apiResource()
,一條更比五條強可使用控制器自帶的表單驗證,更推薦使用 表單類,能分離都分離出去,控制器不要處理太多事情。 能分離的代碼都不要吝嗇~~~html
--collection
的格式老是轉不過來,後來直接放棄了Resources
Resources::collection()
發現,特別好用 >_<Laravel
處理得太好了條件關聯 當時在 laravel-china 看到的這個帖子,而後以爲這個方式不錯,因此本身也這樣子,使用基類的方法統一響應輸出。前端
異常算是一大手筆了,處理好異常,可讓你的代碼優雅不少。 \App\Exceptions\Handler::render
方法能夠捕獲到不少有用的異常,例如,個人代碼是這樣寫的:
UnauthorizedHttpException
這個是捕獲jwt
異常 ValidationException
這個是表單異常,捕獲以後,表單錯誤消息能夠很好的格式化, ModelNotFoundException
這個是模型找不到的異常,捕獲以後,能夠直接在控制器直接這樣laravel
// 未捕獲以前的寫法 public function show($id) { $user = User::find($id); if (! $user) { } // do something } // 如今 public function show($id) { $user = User::findOrFail($id); } // 甚至這樣 public function show(User $user) { // do something }
NotFoundHttpException
404路由找不到的異常,沒什麼好說的了 MethodNotAllowedHttpException
這個是方法不對應,好比你是get路由,卻post請求swagger-ui
+swagger-edit
dist
目錄的東西(其餘能夠刪除了)dist
目錄的東西和根目錄的index.html
swagger-editor
的index.html
改爲了edit.html
,而後把這兩個東西整合到同一個目錄(記得修改css,js的位置)api.json
,api.yaml
大概就和圖中差很少api.json
的位置 edit.html
能夠書寫文檔
index.html
能夠查看文檔edit.html
寫好以後,導出json
,而後粘貼到api.json
文件 api.yaml
,由於清楚緩存以後,下次訪問時會消失php artisan api:auth
工做和API開發有關,用到其餘有經驗了再回來補補。git
RESTful API 設計指南github