Download the PHP package jiannei/laravel-response without Composer
On this page you can find all versions of the php package jiannei/laravel-response. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jiannei/laravel-response
More information about jiannei/laravel-response
Files in jiannei/laravel-response
Package laravel-response
Short Description Laravel api response data format.
License MIT
Informations about the package laravel-response
laravel-response
ENGLISH
为 Laravel 和 Lumen API 项目提供一个规范统一的响应数据格式。
社区讨论文章
- 是时候使用 Lumen 8 + API Resource 开发项目了!
- 教你更优雅地写 API 之「路由设计」
- 教你更优雅地写 API 之「规范响应数据」
- 教你更优雅地写 API 之「枚举使用」
- 教你更优雅地写 API 之「记录日志」
- 教你更优雅地写 API 之「灵活地任务调度」
介绍
laravel-response
主要用来统一 API 开发过程中「成功」、「失败」以及「异常」情况下的响应数据格式。
实现过程简单,在原有的 \Illuminate\Http\JsonResponse
进行封装,使用时不需要有额外的心理负担。
遵循一定的规范,返回易于理解的 HTTP 状态码,并支持定义 ResponseEnum
来满足不同场景下返回描述性的业务操作码。
概览
- 统一的数据响应格式,固定包含:
code
、status
、data
、message
、error
(响应格式设计源于:RESTful服务最佳实践 ) - 你可以继续链式调用
JsonResponse
类中的所有 public 方法,比如Response::success()->header('X-foo','bar');
- 合理地返回 Http 状态码,默认为 restful 严格模式,可以配置异常时返回 200 http 状态码(多数项目会这样使用)
- 支持格式化 Laravel 的
Api Resource
、Api Resource Collection
、Paginator
(简单分页)、LengthAwarePaginator
(普通分页)、Eloquent\Model
、Eloquent\Collection
,以及简单的array
和string
等格式数据返回 - 根据 debug 开关,合理返回异常信息、验证异常信息等
- 支持修改 Laravel 特地异常的状态码或提示信息,比如将
No query results for model
的异常提示修改成数据未找到
- 支持配置返回字段是否显示,以及为她们设置别名,比如,将
message
别名设置为msg
,或者 分页数据第二层的data
改成list
(res.data.data -> res.data.list) - 分页数据格式化后的结果与使用
league/fractal
(DingoApi 使用该扩展进行数据转换)的 transformer 转换后的格式保持一致,也就是说,可以顺滑地从 Laravel Api Resource 切换到league/fractal
- 内置 Http 标准状态码支持,同时支持扩展 ResponseEnum 来根据不同业务模块定义响应码(可选,需要安装
jiannei/laravel-enum
) - 响应码 code 对应描述信息 message 支持本地化,支持配置多语言(可选,需要安装
jiannei/laravel-enum
)
安装
支持 Laravel 5.5. ~ Laravel 11. 版本,自定义业务操作码部分依赖于 jiannei/laravel-enum,需要先进行安装。
laravel 版本 | lumen 版本 | response 版本 | enum 版本 |
---|---|---|---|
5.5.* | 5.5.* | ~1.8 | ~1.4 |
6.* | 6.* | ^2.0 | ~1.4 |
7.* | 7.* | ^3.0 | ^2.0 |
8.* | 8.* | ^4.0 | ^3.0 |
9. - 10. | 9. - 10. | ^5.0 | ^3.0 |
11.* | 不支持 | ^6.0 | ^4.0 |
配置
Laravel
-
发布配置文件
- 格式化异常响应(laravel 11 可省略这一步)
Lumen
-
复制配置文件到
vendor/jiannei/laravel-response/config/response.php
,到config/response.php
-
加载配置
- 格式化异常响应
在 app/Exceptions/Handler.php
中 引入 use Jiannei\Response\Laravel\Support\Traits\ExceptionTrait;
在 app/Http/Controllers/Controller.php
中引入 use Jiannei\Response\Laravel\Support\Traits\ExceptionTrait;
- 注册服务容器
使用
扩展包本身提供了丰富的单元测试用例tests ,也可以通过查看测试用例来解锁使用方法。
或者查看相应的模板项目:
成功响应
示例代码
返回全部数据
支持自定义内层 data 字段名称,比如 rows、list
分页数据
支持自定义内层 data 字段名称,比如 rows、list
返回简单分页数据
支持自定义内层 data 字段名称,比如 rows、list
返回单条数据
其他快捷方法
失败响应
不指定 message
-
未配置多语言响应描述
- 配置多语言描述
指定 message
返回数据
指定 code
返回数据
其他快捷方法
异常响应
表单验证异常
Controller 以外抛出异常
可以使用 abort 辅助函数抛出 HttpException 异常
其他异常
开启 debug(APP_DEBUG=true
)
关闭 debug
自定义业务码
本地化业务码描述
由 JetBrains 赞助
非常感谢 Jetbrains 为我提供的 IDE 开源许可,让我完成此项目和其他开源项目上的开发工作。
Stargazers over time
协议
MIT 许可证(MIT)。有关更多信息,请参见协议文件。
All versions of laravel-response with dependencies
ext-json Version *