最近用 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