oktorino/midresapi

返回一致的json结构,处理异常响应,处理验证异常

v1.2.1 2021-09-30 08:34 UTC

This package is auto-updated.

Last update: 2024-09-13 04:18:35 UTC


README

Quality Score Total Downloads Latest Stable Version License

Midres api,返回具有一致结构的json响应,

  • 使用简单。
  • 简单的返回模型、集合,以及分形转换器
  • 处理异常。
  • 处理验证异常。

安装

需求

  • PHP 7.2 *或最新版本
  • Laravel 7,8或最新版本

Composer中安装Midresapi

composer require oktorino/midresapi --dev

注册到MiddlewareRoute

在kernel.php中进行配置,并将其放置在middllewareRoute

'midresapi' => \Oktorino\Midresapi\ConsistencyStructure::class;

然后在API路由中调用此"midresapi"。例如在api.php中

Route::get('/', function(){
    return response("response work !!!");
})->middleware("midresapi");

用法 & 示例

返回成功消息

 return "successs";
 #or
 return response("success");

response

{
 "status_code": 200,
 "success": true,
 "message": "success",
 "data": null
}

返回数据

返回模型

 $user=\App\User::first();
 return response($user);

response

{
   "status_code": 200,
   "success": true,
   "message": "ok",
   "data": {
       "id": 1,
       "email": "admin@basahinajadeh.com",
       "username": "admin",
   }
}

返回集合

 $users=\App\User::limit(2)->get();
 return response($users);

response

{
   "status_code": 200,
   "success": true,
   "message": "ok",
   "data": [
       {
           "id": 5532,
           "email": "dancuk@dummy.com"
       },
       {
           "id": 5531,
           "email": "jancuk@dummy.com"
       }
   ]
}

支持在转换器中返回分形

失败响应

  • response错误
{
   "status_code": 500,
   "success": false,
   "message": "Something went wrong !!!",
   "data": null,
   "errors": [
       {
           "message": "Undefined variable: undefine_var",
           "file": "/home/tuah/apps/consistency_response/routes/api.php",
           "line": 24
       }
   ]
}
  • 故意的错误,例如
  return response("can't be proccess");
{
   "status_code": 422,
   "success": false,
   "message": "can't proccess",
   "data": null
}
  • 返回失败的验证
{
    "status_code": 422,
    "success": false,
    "message": "The given data was invalid.",
    "data": null,
    "errors": {
        "validation": [
            "The attendance no field is required."
        ]
    }
}

许可证

midrespi由Tuah Oktorino创建。