写在前面
工作中使用 Laravel 开发 API 项目已经有些年头了,发现每次启动新的 Api 项目的时都会在 Laravel 基础上进行一些预处理,包括针对 API 项目的结构设计,统一响应结构的封装,异常的捕获处理以及授权模块的配置等。总是在做一些重复的工作,那索性将这些常用的基础封装做成一个「启动模板」好了。
项目地址:戳这儿
更新内容
- 实现了根据实际业务场景自定义响应码和多语言的响应描述,目录结构有参考 @mingzaily 同学的实现(2020-06-05)
- 更好的支持 Api Resource:使用
with()
和$additonal
附加额外数据,响应返回前使用withResponse()
对响应进行处理(2020-06-04) - 补充响应成功时的使用示例(2020-06-03)
- 规范 Reponse 中的 message 提示(2020-06-02)
为什么是 Lumen ?
现如今,中大型项目中通常使用前后端分离方式开发,前后端分别通过不同的代码仓库各自维护着项目代码,Laravel 只负责项目中的 API 部分,提供 API 给前端调用。这种场景下,使用 Laravel 进行开发 API 稍微显得有点“臃肿”了。
相比之下,Lumen 针对项目中的 API 开发场景,精简了Laravel 中的很多部分,更适合 API 开发。有了 Laravel 使用经验,切换到 Lumen 也较为容易。
概览
- 适配 Laravel 7 中新增的 HttpClient 客户端
- 使用 Laravel 原生的 Api Resource
- 规范统一的响应结构
- 使用 Jwt-auth 方式授权
- 支持日志记录到 MongoDB
- 合理有效地『Repository & Service』架构设计(