【问题标题】:Remove `data` key from fractal transformed single item从分形转换的单个项目中删除“数据”键
【发布时间】:2016-06-05 14:36:16
【问题描述】:

我正在使用带有流明框架的分形来构建 API。它很好用,但是当我返回任何特定项目时,它会在 data 键中返回结果。

{ data : { /** All data **/ }}

我了解在集合中使用 data 键。但我觉得没有必要在单个结果中使用 data 键。 (如果是错误的 REST 约定,请纠正我)

那么如何从单个结果中删除 data 键?

【问题讨论】:

  • 只是让我知道,为什么你需要使用分形,Lumen 通常包含一个开箱即用的序列化程序,不是吗?关于您的问题,您应该阅读此页面的文档:fractal.thephpleague.com/serializers 它谈到了“数据”关键字的使用...
  • 我主要使用分形来包含其他关系数据。例如,如果我正在响应 book 数据,我可能还希望将 author 数据包含在其中。我喜欢分形的做法。我对流明并不熟悉,所以我不确定流明是否也可以。无论如何 - 我想你回答了我在找什么(还没试过)。你能把它写成答案吗?
  • 是的,当然我可以把它作为答案,即使它显然不是最好的^^你在使用 Eloquent 来检索你的模型吗?

标签: api rest laravel lumen


【解决方案1】:

将此代码放入您的Bootstrap/app.php可以帮助您避免data。您也可以将其作为服务提供商。

  $app->bind('League\Fractal\Manager', function ($app) {
        $fractal = new \League\Fractal\Manager;

    $serializer = new \League\Fractal\Serializer\ArraySerializer();

    $fractal->setSerializer($serializer);

    return $fractal;
});

$app->bind('Dingo\Api\Transformer\Adapter\Fractal', function ($app) {
    $fractal = $app->make('\League\Fractal\Manager');

    return new \Dingo\Api\Transformer\Adapter\Fractal($fractal);
});

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多