响应

时间:2016-05-30 13:09:33

标签: php rest laravel laravel-5 dingo-api

我正在尝试使用Dingo API为我们的webapp实现RESTful后端API。最佳实践表明响应有效负载应包含links到返回的资源对象。它可以是_linkhref的形式。我没有看到在没有手工制作资源URL的情况下将此包含在响应中的方法。我希望得到类似的答案......

[
 { 
  'person': "Joe",
  '_link': 'http://api.mydomain.com/v1/persons/2'
 },
 {
  'person': "Pat",
  '_link': 'http://api.mydomain.com/v1/persons/3'
 }
]

我可以在响应中包含资源链接吗?

1 个答案:

答案 0 :(得分:1)

您是否正在使用转换来生成响应数据。 Dingo API使用Fractal作为默认转换层。所以你需要一个PersonTransformer,例如:

<?php
namespace App\Transformer;

use App\Model\Person;
use League\Fractal;

class PersonTransformer extends Fractal\TransformerAbstract
{
    public function transform(Person $person)
    {
        return [
            'id' => (int) $person->id,
            'person' => $person->name,
            'links' => [
                [
                    'rel' => 'self',
                    'uri' => '/persons/' . $person->id,
                ],
            ],
        ];
    }
}

有关转换以及如何使用特定于Fractal的转换的详细信息,请参阅以下链接。 Fractal Transformers