liyu / dingo-serializer-switch
切换 dingo serializer 的中间件
0.3.2
2020-06-24 04:09 UTC
Requires
- php: >=7.0
- dingo/api: ^2.0|^3.0
README
这是一个为 dingo/api 提供切换 serializer 的中间件
如果一个资源的关联关系为 null,我们可以在 transformer 中返回 $this->null()
。但是默认的 serializer 返回 [],我认为 null 更好。另外,当分页没有链接时,默认也是 [],我希望返回 null。因此,我编写了两个 serializer 来修复这个问题。
如果您想使用默认的 serializer,只需使用 default_array
或 default_data_array
。
安装
Laravel
composer require liyu/dingo-serializer-switch
Lumen
bootstrap/app.php
$app->routeMiddleware([ // ... 'serializer' => Liyu\Dingo\SerializerSwitch::class, ]);
用法
$api->version('v1',
['middleware' => 'serializer:array'],
function ($api) {
});
$api->version('v2',
['middleware' => 'serializer'],
function ($api) {
});
$api->version('v3',
['middleware' => 'serializer:data_array'],
function ($api) {
});
默认键是 data_array,所以 v2 和 v3 是相同的。
'default_array' => 'League\Fractal\Serializer\ArraySerializer',
'default_data_array' => 'League\Fractal\Serializer\DataArraySerializer',
'json_api' => 'League\Fractal\Serializer\JsonApiSerializer',
'array' => 'Liyu\Dingo\Serializers\ArraySerializer',
'data_array' => 'Liyu\Dingo\Serializers\DataArraySerializer',