主题
响应
CatchAdmin 为了统一整个后台的响应格式,对后台的响应数据格式做了代码层面的劫持,所有的响应数据以固定的格式进行输出,如下
成功响应(非分页)
字段 | 类型 | 说明 |
---|---|---|
code | int | 返回码 |
data | Object|Array | 返回数据 |
message | string | 返回信息 |
错误响应
字段 | 类型 | 说明 |
---|---|---|
code | int | 返回码 |
message | string | 返回信息 |
成功响应(分页格式)
字段 | 类型 | 说明 |
---|---|---|
code | int | 返回码 |
data | Array | 返回数据 |
limit | int | 每页显示数量 |
message | string | 返回信息 |
total | int | 总数 |
使用者一般在控制器的方法返回结果就可以了,例如下面这样的
php
public function index()
{
return ['hello' => 'world'];
}
在控制器返回都是返回 success 的响应状态给前端,如果你需要错误响应,那么就需要使用异常
php
public function index()
{
throw new FaileException('处理异常');
}
具体实现可以参考我写的博客文章-另辟蹊径!如何在 Laravel 更优雅的响应 JSON 数据 ,利用 Illuminate\Foundation\Http\Events\RequestHandled
事件来 hook 整个响应内容实现,虽然有些绕口,但是在使用起来真的方便太多了。
自定义
从个人开发经验来说,一般来说,后台的响应格式不会有什么变化,除非出现特殊需求,需要特定的响应格式。CatchAdmin 提供了一个非常易用的操作来实现特定的响应格式
php
use Catch\Support\ResponseBuilder;
public function index()
{
return ResponseBuilder::success()->with('hello', 'world');
}
最后的响应的内容如下
还可以这么使用,先使用 code
静态方法,然后再进行链式调用
php
public function index()
{
return ResponseBuilder::code(10000)
->with('hello', 'world')
->with('hi', 'world')
->data($data)
->message('Hello world');
}
这样就可以轻而易举的实现自定义响应内容了,一般没有特殊的数据格式,建议使用 CatchAdmin 默认的响应即可