quetzal-studio/laravel-api-response

Laravel 自定义 API 响应

v0.2.1 2023-12-21 08:11 UTC

This package is auto-updated.

Last update: 2024-09-21 21:17:10 UTC


README

安装

composer require quetzal-studio/laravel-api-response

使用方法

使用数组

$user = [
    'id' => 1,
    'name' => 'Ata',
];

return api_response($user);

// result
{
  "data": {
    "id": 1,
    "name": "Ata"
  },
  "time": 4,
  "code": 200,
  "message": "Successful"
}

使用模型

$user = Model::first();

return api_response($user);

// result
{
  "data": {
    "id": 1,
    "name": "Ata"
  },
  "time": 4,
  "code": 200,
  "message": "Successful"
}

使用正文

用户正文类

use QuetzalStudio\ApiResponse\Body;

$body = Body::make(code: 404, message: 'Not Found');

return api_response($body)->status(404);

// result
{
  "time": 6,
  "code": 404,
  "message": "Not Found",
  "data": null
}

使用 make_body 函数

return api_response(
    make_body(code: 404, message: 'Not Found')
)->status(404);

// result
{
  "time": 6,
  "code": 404,
  "message": "Not Found",
  "data": null
}

使用 withBody 方法

return api_response()->withBody([
    'code' => 403,
    'message' => 'Forbidden',
    'data' => [
        'ip' => '127.0.0.1',
    ],
])->status(403);

// result
{
  "data": {
    "ip": "127.0.0.1"
  },
  "time": 6,
  "code": 403,
  "message": "Forbidden"
}

更改响应键

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        Response::setupBodyKeys([
            'code' => 'status_code',
            'message' => 'status_message',
            'data' => 'result',
        ]);
    }

排除某些键

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        Response::excludeBodyKeys(['time', 'code']);
    }