sm-sandy/api-response

ApiResponse 包是一个简单而强大的 Laravel 包,旨在简化 API 响应的格式化过程。它提供了一种方便的方式来构建并返回一致格式的 JSON 响应,适用于成功和错误场景。

v2.0.0 2024-01-21 18:04 UTC

This package is auto-updated.

Last update: 2024-09-23 07:19:57 UTC


README

描述

介绍 ApiResponse 包 - 一个易于使用且功能强大的 API 响应格式化解决方案。你是否厌倦了花费无数小时来格式化 API 响应?那就看看 ApiResponse 包吧。我们简单而强大的包简化了流程,为你提供了一种轻松创建一致和结构良好的 JSON 响应的方法,适用于各种 HTTP 状态码。告别不一致和格式糟糕的响应,欢迎清晰的 API 代码库中的可维护性。不要等待,立即尝试 ApiResponse 包,开始简化你的 API 响应格式化过程。

主要功能

  • 结构化响应

    • 轻松生成常见 HTTP 状态码(2xx、4xx、5xx)的响应。
    • 在 API 中保持一致的响应结构。
  • 自定义

    • 使用数据、消息和状态码自定义成功响应。
    • 为客户端和服务器错误响应提供自定义错误消息。
  • 默认消息

    • 利用常见场景的默认消息(例如,“资源已成功创建”,“内部服务器错误”)。
  • 可配置性

    • 通过配置文件配置默认成功和错误消息以快速调整。
  • JSON 格式

    • 所有响应都自动格式化为 JSON,确保与现代 API 标准兼容。

安装

  1. 通过 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 响应需求的启发。