最近用 Laravel 写了一段时间的 API,总结一下自己的心得吧。
Route::prefix('v1')->group(function () {
	// more
});
一个简单的接口示例

jwt-auth时有疑问,Laravel自带的token验证使用的是数据库api_token字段验证,而不见jwt-auth需要这个
QAQphp artisan jwt:secret生成了秘钥api的路由Route::apiResource(),一条更比五条强可以使用控制器自带的表单验证,更推荐使用 表单类,能分离都分离出去,控制器不要处理太多事情。
 能分离的代码都不要吝啬~~~
能分离的代码都不要吝啬~~~
--collection的格式总是转不过来,后来直接放弃了ResourcesResources::collection()发现,特别好用 >_<Laravel处理得太好了条件关联

当时在 laravel-china 看到的这个帖子,然后觉得这个方式不错,所以自己也这样子,使用基类的方法统一响应输出。
异常算是一大手笔了,处理好异常,可以让你的代码优雅很多。
\App\Exceptions\Handler::render方法可以捕获到很多有用的异常,例如,我的代码是这样写的:
 
UnauthorizedHttpException这个是捕获jwt异常
ValidationException这个是表单异常,捕获之后,表单错误消息可以很好的格式化,
ModelNotFoundException这个是模型找不到的异常,捕获之后,可以直接在控制器直接这样
// 未捕获之前的写法
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
}
NotFoundHttpException404 路由找不到的异常,没什么好说的了
MethodNotAllowedHttpException这个是方法不对应,比如你是get路由,却post请求
php artisan api:auth

工作和API开发有关,用到其他有经验了再回来补补。
swagger-ui+swagger-edit
dist目录的东西(其他可以删除了)dist目录的东西和根目录的index.htmlswagger-editor的index.html改成了edit.html,然后把这两个东西整合到同一个目录(记得修改css,js的位置)api.json,api.yaml 大概就和图中差不多api.json的位置

edit.html可以书写文档
index.html可以查看文档edit.html写好之后,导出json,然后粘贴到api.json文件

api.yaml,因为清楚缓存之后,下次访问时会消失