api laravel 统一返回方法_如何设计 API 接口,实现统一格式返回?
时间: 2024-02-21 22:00:40 浏览: 233
spring boot 统一JSON格式的接口返回结果的实现
在 Laravel 中设计 API 接口,可以通过自定义中间件来实现统一格式返回的功能。
具体实现步骤如下:
1. 创建中间件 `ApiResponseMiddleware`,并在 `handle` 方法中对请求进行处理。
```php
<?php
namespace App\Http\Middleware;
use Closure;
class ApiResponseMiddleware
{
public function handle($request, Closure $next)
{
$response = $next($request);
// 对响应进行处理,统一格式返回
$result = [
'code' => 0,
'message' => 'success',
'data' => [],
];
if ($response->exception) {
// 请求异常
$result['code'] = $response->getStatusCode();
$result['message'] = $response->getReasonPhrase();
} else {
// 请求成功
$result['data'] = $response->original;
}
return response()->json($result);
}
}
```
2. 注册中间件,在 `app/Http/Kernel.php` 文件的 `$middleware` 数组中添加中间件。
```php
protected $middleware = [
// ...
\App\Http\Middleware\ApiResponseMiddleware::class,
];
```
3. 在控制器中,使用 `response` 函数返回数据即可。
```php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index(Request $request)
{
$users = User::all();
return response()->json($users);
}
}
```
这样,所有 API 接口的响应都会被 `ApiResponseMiddleware` 中间件拦截,返回统一格式的数据。
阅读全文