我正在尝试使用Dingo API为我们的webapp实现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'
}
]
我可以在响应中包含资源链接吗?
答案 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