hyder / json-response
处理 HTTP 请求的 JSON 响应。
Requires
- php: ^7.3|^8.0
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); }
可用的成功方法
以下方法可用于返回成功响应
created($message = "数据已成功创建!", $data = null)
返回一个包含 201 创建状态码、成功信息和可选数据的响应。updated($message = "数据已成功更新!", $data = null)
返回一个包含 200 OK 状态码、成功信息和可选数据的响应。success($message = "请求成功完成!")
返回一个包含 200 OK 状态码和成功信息的响应。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": {
// ...
}
}
可用的错误方法
以下方法可用于返回错误响应
-
badRequest($message = "无效请求!")
返回一个包含 400 无效请求状态码和可选错误信息的响应。此方法用于表示一般的“无效请求”错误。 -
unauthenticated($message = '未认证!')
返回一个包含 401 未授权状态码和可选错误信息的响应。它用于表示发起请求的用户未认证。 -
invalidRequest($message = '无效请求!')
返回一个包含 403 禁止状态码和可选错误信息的响应。它用于表示请求无效或不符合服务器的期望。 -
validationError($message = '缺少必填字段!')
返回一个包含 422 无法处理实体状态码和可选错误信息的响应。它用于表示请求数据验证失败。 -
notFound($message = '未找到!')
返回一个包含 404 未找到状态码和可选错误信息的响应。它用于表示请求的资源未找到。 -
internalError($message = '内部服务器错误!')
返回一个包含 500 内部服务器错误状态码和可选错误信息的响应。它用于表示发生了意外的内部服务器错误。 -
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开发和维护。