sm-sandy / api-response
ApiResponse 包是一个简单而强大的 Laravel 包,旨在简化 API 响应的格式化过程。它提供了一种方便的方式来构建并返回一致格式的 JSON 响应,适用于成功和错误场景。
v2.0.0
2024-01-21 18:04 UTC
Requires
- php: >=7.4
README
描述
介绍 ApiResponse 包 - 一个易于使用且功能强大的 API 响应格式化解决方案。你是否厌倦了花费无数小时来格式化 API 响应?那就看看 ApiResponse 包吧。我们简单而强大的包简化了流程,为你提供了一种轻松创建一致和结构良好的 JSON 响应的方法,适用于各种 HTTP 状态码。告别不一致和格式糟糕的响应,欢迎清晰的 API 代码库中的可维护性。不要等待,立即尝试 ApiResponse 包,开始简化你的 API 响应格式化过程。
主要功能
-
结构化响应
- 轻松生成常见 HTTP 状态码(2xx、4xx、5xx)的响应。
- 在 API 中保持一致的响应结构。
-
自定义
- 使用数据、消息和状态码自定义成功响应。
- 为客户端和服务器错误响应提供自定义错误消息。
-
默认消息
- 利用常见场景的默认消息(例如,“资源已成功创建”,“内部服务器错误”)。
-
可配置性
- 通过配置文件配置默认成功和错误消息以快速调整。
-
JSON 格式
- 所有响应都自动格式化为 JSON,确保与现代 API 标准兼容。
安装
-
通过 Composer 安装包
composer require sm-sandy/api-response
使用示例
-
自定义
- ApiResponse::custom(data,message,statusCode);
-
成功
- ApiResponse::success(data,message);
ApiResponse::success(); // output { "data":[], "message":"The request was successful", //default message "status_code":200 } $data = [ { "key": "value" } ] ApiResponse::success($data,"Data get successfully"); // output { "data":[{ "key": "value" }], "message":"Data get successfully", "status_code":200 }
-
创建
- ApiResponse::created(data,message);
ApiResponse::created(); // output { "data":[], "message":"Resource successfully created", //default message "status_code":201 } $data = [ { "key": "value" } ] ApiResponse::created($data,"User created successfully"); // output { "data":[{ "key": "value" }], "message":"User created successfully", "status_code":200 }
-
无内容
- ApiResponse::noContent();
ApiResponse::noContent(); // output status code 204 null
-
错误请求
- ApiResponse::badRequest(message);
ApiResponse::badRequest(); // output { "message":"Bad request. Please check your request syntax", //default message "status_code":400 } ApiResponse::badRequest("Your message"); // output { "message":"Your message", "status_code":400 }
-
未授权
- ApiResponse::unauthorized(message);
ApiResponse::unauthorized(); // output { "message":"Unauthorized. Please provide valid authentication credentials", //default message "status_code":400 } ApiResponse::unauthorized("Your message"); // output { "message":"Your message", "status_code":400 }
-
禁止
- ApiResponse::forbidden(message);
ApiResponse::forbidden(); // output { "message":"Forbidden. You don't have permission to access this resource", //default message "status_code":400 } ApiResponse::forbidden("Your message"); // output { "message":"Your message", "status_code":400 }
-
未找到
- ApiResponse::notFound(message);
ApiResponse::notFound(); // output { "message":"Resource not found", //default message "status_code":400 } ApiResponse::notFound("Your message"); // output { "message":"Your message", "status_code":400 }
-
错误
- ApiResponse::error(message);
ApiResponse::error(); // output { "message":"An error occurred", //default message "status_code":400 } ApiResponse::error("Your message"); // output { "message":"Your message", "status_code":400 }
-
laravel 控制器的示例
<?php namespace App\Http\Controllers; use App\Models\User; use Sandy\ApiResponse\Facades\ApiResponse; class AuthController extends Controller { public function getUsers() { try { $data = User::get(); if ($data->isEmpty()) { // If no users found, return an error response return ApiResponse::noContent(); } // If users are found, return a success response return ApiResponse::success($data); } catch (\Exception $e) { // Handle any exceptions or errors that might occur return ApiResponse::error($e->getMessage()); } } }
许可证
本包是开源软件,许可协议为 MIT 许可证。
贡献
欢迎贡献!请随时提交问题或拉取请求。
作者
Md. Sakwat Minar Sandy
感谢
受 Laravel 应用程序中一致 API 响应需求的启发。