版本 Laravel Framework Lumen (6.3.5) (Laravel Components ^6.0)
Laravel6.x中文 开发手册
Lumen6.x中文 开发手册
lumen7也可以无缝升级
- 推荐 lumen7 启动模板
- 规范统一的响应结构
- 使用 jwt-auth 方式授权
- 合理有效地『Repository & Service』架构设计
- 使用guzzlehttp/guzzle做API发送(Laravel7中内置) 文档
status—— 业务状态值
message—— 当状态值为非0时有效,用于显示错误信息。成功显示Success
data—— 包含响应的 body。状态值为非0时,data返回错误原因或异常名称(取决于是否开启debug模式)
整体响应结构设计参考如上,相对严格地遵守了 RESTful 设计准则,返回合理的 HTTP 状态码。
- data:
- 查询单条数据时直接返回对象结构,减少数据层级;
- 查询列表数据时返回数组结构;
- 创建或更新成功,返回修改后的数据;(也可以不返回数据直接返回空对象)
- 删除成功时返回空对象
- status:
- >0,客户端(前端)出错,HTTP 状态响应码在 400-499 之间。如,传入错误参数,访问不存在的数据资源等
- -1,服务端(后端)出错,HTTP 状态响应码在 500-599 之间。如,代码语法错误,空对象调用函数,连接数据库失败,undefined index 等
- 0,success, HTTP 响应状态码一般为2XX,用来表示业务处理成功。
- message: 描述执行的请求操作处理的结果。
App\Exceptions\Handler做了大量处理
App\Exceptions\ExceptionReport中doReport是需要进行自定义处理的框架异常,否则一律按系统异常处理
如有更好的解决方案可以提出
- 一个控制器可以注入一个或多个Service
- 一个Service可以注入一个或多个Repository(没有Repository这一步可以省略)
- 一个Repository单一注入一个Model(没有Repository这一步可以省略)
- 统一开发工具
- 规范注解
- 尽量使用异常作为流程控制,控制器一定是接收正确的返回值,并以固定格式返回给前端
- 数据库使用migrate进行版本控制
- 开启opcache提高相应速度
为了方便Repository使用model字段,可以安装第三方包barryvdh/laravel-ide-helper
composer require barryvdh/laravel-ide-helper --dev本地安装ide-helperbootstrap\app.php添加$app->register(Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);- 切换到命令行
php artisan ide-helper:models