{"repo":"jiannei/lumen-api-starter","free":true,"listed":false,"github":"https://github.com/jiannei/lumen-api-starter","clone":"git clone https://github.com/jiannei/lumen-api-starter.git","description":"Lumen 10 基础上扩展出的API 启动项目，精心设计的目录结构，规范统一的响应数据格式，Repository 模式架构的最佳实践。","language":"PHP","stars":350,"topics":["lumen","lumen-framework","api","ready-to-use","starter-template","repository-pattern","restful-api","response-formatter","fractal","transformer"],"license":"MIT","category":"saas-starters-boilerplates","readme_excerpt":"Lumen Api Starter Designed With ❤️ 基于最新版本的 Lumen 基础构建的一个 基础功能 完备， 规范统一 ，能够 快速 应用于实际的 API 项目开发启动模板。同时，也希望通过 合理的 架构设计使其适用于中大型项目。 少许的依赖安装，遵循 Laravel 的思维进行扩展，不额外增加「负担」。 开箱即用，加速 Api 开发。 社区讨论传送 - 是时候使用 Lumen 8 + API Resource 开发项目了！ - 一篇 RESTful API 路由设计的最佳实践 - 教你更优雅地写 API 之「规范响应数据」 - 教你更优雅地写 API 之「枚举使用」 - 教你更优雅地写 API 之「记录日志」 概览 说明 开始了解本项目前，引用一段官方说明 在发布Lumen后的几年里，PHP进行了各种出色的性能改进。因此，随着Laravel Octane的推出，我们不再建议您使用Lumen开始新项目。相反，我们建议始终使用Laravel开始新项目。 项目会继续更新维护，当中使用到 package 也会继续更新同时支持 laravel/lumen 新版本。API 规范没有严格意义上的标准，能适用于团队，让项目更好维护的规范就是好的规范，欢迎一起讨论。 项目laravel版本传送地址 支持情况 - RESTful 规范的HTTP 响应结构：成功、失败、异常场景统一结构响应；多语言提示返回 - 更为便捷地使用枚举/常量 - Jwt-auth 方式授权 - Repository & Service」架构设计参考 目录结构 Repository & Service 模式架构 实际案例 为了更好地理解 Repository & Service 模式，对 Laravel 中文社区的教程 2 中的 Larabbs 项目使用该模式进行了重构，实际开发过程可以参考其中的分层设计。 larabbs 职责说明 Controller 岗位职责 ： 1. 校验是否有必要处理请求，是否有权限和是否请求参数合法等。无权限或不合法请求直接 response 返回格式统一的数据 2. 将校验后的参数或 Request 传入 Service 中具体的方法，安排 Service 实现具体的功能业务逻辑 3. Controller 中可以通过 construct() 依赖注入多个 Service。比如 UserController 中可能会注入 UserService （用户相关的功能业务）和 EmailService （邮件相关的功能业务） 4. 使用统一的 $this- response 调用 sucess 或 fail 方法来返回统一的数据格式 5. 使用 Laravel Api Resource 的同学可能在 Controller 中还会有转换数据的逻辑。比如， return Response::success(new UserCollection($resource)); 或 return Response::success(new UserResource($user)); Service 岗位职责 ： 1. 实现项目中的具体 功能 业务。所以 Service 中定义的方法名，应该是用来 描述功能或业务 的（动词+业务描述）。比如 handleListPageDisplay 和 handleProfilePageDisplay ，分别对应用户列表展示和用户详情页展示的需求。 2. 处理 Controller 中传入的参数，进行 业务判断 3.（可选）根","default_branch":null,"files":null,"tree":[],"storefront":"/r/jiannei","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/jiannei/lumen-api-starter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}