alipeng/dingo-serializer-switch

用于切换 dingo serializer 的中间件

v0.3.2 2020-06-23 10:39 UTC

This package is auto-updated.

Last update: 2024-09-23 20:17:57 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 LICENSE