api — Получить URI дочерних ресурсов с библиотекой Hateoas для переполнения стека

Вот User сущность, которую я хочу GET с Hateoas библиотека:

/**
* [...]
*
* @Hateoas\Relation(
*  "self",
*  href=@Hateoas\Route("api_get_user", parameters={"id"="expr(object.getId())"})
* )
* @Hateoas\Relation(
*  "placeofbirth",
*  href="expr(link(object.getPlaceOfBirth(), 'self'))",
*  exclusion=@Hateoas\Exclusion(excludeIf="expr(object.getPlaceOfBirth() === null)")
* )
*/
class User
{
// [...]

/**
* @ORM\OneToOne(targetEntity="Place")
* @Serializer\Exclude
*/
private $placeOfBirth;

// [...]
}

Мой REST-ответ правильный. _links часть, как ожидается, содержит URI для моего OneToOne связь:

{
// [...]
"_links": {
"self": {
"href": "\/api\/v0.1\/users\/1"},
"placeofbirth": {
"href":"\/api\/v0.1\/places\/3"}
}
}

Тем не менее, я не знаю, как получить то же самое с OneToMany связь. Например:

/**
* @ORM\OneToMany(targetEntity="Place", mappedBy="visitor")
* @Serializer\Exclude
*/
private $visitedPlaces;

Я хотел бы получить (что-то вроде):

{
// [...]
"_links": {
"self": {
"href": "\/api\/v0.1\/users\/1"},
"visitedPlaces": [
{ "href": "\/api\/v0.1\/place\/1" },
{ "href": "\/api\/v0.1\/place\/2" },
{ "href": "\/api\/v0.1\/place\/3" },
{ "href": "\/api\/v0.1\/place\/4" }
]
}
}

Я знаю, что могу получить visitedPlaces как встроенные ресурсы, и это работает, но это не то, что я хочу. Я не хочу получать весь объект, только URI ресурса, так же, как я делаю это с отношением с одним ресурсом (см. Место рождения).

Возможно ли это, и если да, то как?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]