0

我正在尝试使用 Dingo API 为我们的 web 应用程序实现 RESTful 后端 API。最佳实践表明响应负载应该包含links返回的资源对象。它可以是_link或的形式href。如果没有手工制作资源 URL,我看不到将其包含在响应中的方法。我希望得到类似的回应...

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

有没有办法可以在响应中包含资源链接?

4

1 回答 1

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,
                ],
            ],
        ];
    }
}

您可以参考以下链接以获取有关转换以及如何使用它们特定于分形的更多信息。 分形变形金刚

于 2016-05-30T22:38:23.360 回答