avertys / lighter

使您的请求更轻量

1.0.3 2020-12-14 21:52 UTC

This package is not auto-updated.

Last update: 2024-10-02 14:44:26 UTC


README

Lighter 是一个包,可以帮助您提高请求的性能。您可以选择保留模型中的哪些数据,或者让客户端请求他所需的数据。

安装

为了安装 Lighter,只需使用 Compose

composer require "avertys/lighter"

如何使用 Lighter

在模型上

要在模型上使用 Lighter,您必须将 Avertys\Lighter\LighterTrait 添加到您的模型中

class User extends Model
{
    use LighterTrait;

    protected $appends = ['fullname'];
}

然后,您只需编写以下代码。在此示例中,访问器未计算。

$user = User::find(1);

return response()->json(
    $user->lighter()->keep(['name', 'address']);
, 200);

/*
{
    "name" : "Steve",
    "age" : "28" 
}
*/

您还可以使用助手在集合上使用 lighter。

$users = User::all();

return response()->json(
    lighter($users)->keep(['name', 'address']);
, 200);

/*
{
    "name" : "Steve",
    "age" : "28" 
},
{
    "name" : "John",
    "age" : "35" 
},
*/

助手可用于模型

$user = User::find(1);

return response()->json(
    lighter($user)->keep(['name', 'address']);
, 200);

/*
{
    "name" : "Steve",
    "age" : "28" 
},
{
    "name" : "John",
    "age" : "35" 
},
*/

使用请求:让您的客户端请求所需的数据。

在参数中,添加 _keep 参数 https:///users?_keep["name"] .

$user = User::find(1);

return response()->json(
    lighter($user)->keep();
, 200);

/*
{
    "name" : "Steve",
    "age" : "28" 
},
{
    "name" : "John",
    "age" : "35" 
},
*/