hyder/json-response

处理 HTTP 请求的 JSON 响应。

2.0.1 2023-05-11 21:23 UTC

This package is auto-updated.

Last update: 2024-09-25 20:10:53 UTC


README

概述

JSON-Response 包为 Laravel 应用程序中处理 JSON 响应提供了一个简单且极简的接口。它提供了方便的方法来返回具有标准化格式的成功响应和错误响应。

安装

您可以通过 Composer 安装 JSON-Response 包。在您的终端中运行以下命令:

composer require hyder/json-response

可选

服务提供程序将自动注册。或者,您也可以手动在您的 config/app.php 文件中添加服务提供程序

'providers' => [
    // ...
    Hyder\JsonResponse\JsonResponseServiceProvider::class,
];

用法

基本用法

要使用 JSON-Response 包,您需要导入 JsonResponse 门面并在控制器或路由中使用其方法。

use Hyder\JsonResponse\Facades\JsonResponse;

// ...

public function store(Request $request)
{
    try {

        // Validate the incoming request
        $validator = Validator::make($request->all(), [
            // Validation rules
        ]);

        // Check if validation fails
        if ($validator->fails()) {
            // Return a validation error response
            return JsonResponse::validationError($validator->errors());
        }

        // Process the request and create a new resource

        // Return a success response
        return JsonResponse::created($message);
    } catch(\Exception $ex){
        return JsonResponse::internalError($ex->getMessage());
    }

}

public function update(Request $request, $id)
{
    // Process the request and update the specified resource

    // Return a success response
    return JsonResponse::updated($message);
}

可用的成功方法

以下方法可用于返回成功响应

  1. created($message = "数据已成功创建!", $data = null)
    返回一个包含 201 创建状态码、成功信息和可选数据的响应。
  2. updated($message = "数据已成功更新!", $data = null)
    返回一个包含 200 OK 状态码、成功信息和可选数据的响应。
  3. success($message = "请求成功完成!")
    返回一个包含 200 OK 状态码和成功信息的响应。
  4. withData($data, $message = "数据已成功获取!")
    返回一个包含 200 OK 状态码、成功信息和提供的数据的响应。

方法链

您可以将方法链接在一起以获得更多灵活性

// Return a success response with a custom status code and message
return JsonResponse::statusCode($statusCode)->success('Your message');

// Return a success response with a custom status code, header, and message
return JsonResponse::statusCode($statusCode)->withHeader($header)->success('Your message');

请注意,当使用 created() 方法时,statusCode() 方法将不会影响链式调用。

成功响应

{
  "status": true,
  "message": "Your message",
  "data": {
    // ...
  }
}

可用的错误方法

以下方法可用于返回错误响应

  1. badRequest($message = "无效请求!")
    返回一个包含 400 无效请求状态码和可选错误信息的响应。此方法用于表示一般的“无效请求”错误。

  2. unauthenticated($message = '未认证!')
    返回一个包含 401 未授权状态码和可选错误信息的响应。它用于表示发起请求的用户未认证。

  3. invalidRequest($message = '无效请求!')
    返回一个包含 403 禁止状态码和可选错误信息的响应。它用于表示请求无效或不符合服务器的期望。

  4. validationError($message = '缺少必填字段!')
    返回一个包含 422 无法处理实体状态码和可选错误信息的响应。它用于表示请求数据验证失败。

  5. notFound($message = '未找到!')
    返回一个包含 404 未找到状态码和可选错误信息的响应。它用于表示请求的资源未找到。

  6. internalError($message = '内部服务器错误!')
    返回一个包含 500 内部服务器错误状态码和可选错误信息的响应。它用于表示发生了意外的内部服务器错误。

  7. error($message = '出了些问题!', int $statusCode = 500)
    返回一个包含指定状态码和错误信息的响应。

请注意,如果需要,您可以为每个错误响应提供自定义错误信息。

请随意调整方法名称和默认错误信息,以更好地满足您应用程序的需求。

错误处理方法链式调用

您可以将方法链接在一起以获得更多灵活性

// Return a error response with a custom status code and message
return JsonResponse::statusCode($statusCode)->error($message);

// Return a error response with a custom status code, header, and message
return JsonResponse::withHeader($header)->error($message, 400);

请注意,当与 error() 方法链式调用时,statusCode() 方法才会产生影响。

响应

{
  "status": false,
  "message": "Your message" // Message can contain any data type
}

自定义响应

除了提供的方法外,您还可以使用 response() 方法返回自定义的JSON响应。此方法允许您指定响应的数据、状态码和头信息。

// Return a custom response with a custom status code and data
return JsonResponse::statusCode($statusCode)->response($array);

// Return a custom response with a custom status code, header, and data
return JsonResponse::statusCode($statusCode)->withHeader($header)->response($array);

许可证

本软件包是开源软件,遵循MIT许可证。

致谢

本软件包由Tofayel Hyder Abhi开发和维护。