liyu/dingo-serializer-switch

切换 dingo serializer 的中间件

0.3.2 2020-06-24 04:09 UTC

This package is auto-updated.

Last update: 2024-08-23 06:24:31 UTC


README

这是一个为 dingo/api 提供切换 serializer 的中间件

如果一个资源的关联关系为 null,我们可以在 transformer 中返回 $this->null()。但是默认的 serializer 返回 [],我认为 null 更好。另外,当分页没有链接时,默认也是 [],我希望返回 null。因此,我编写了两个 serializer 来修复这个问题。

如果您想使用默认的 serializer,只需使用 default_arraydefault_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',

许可证

MIT 许可证