Comparte:
API - Relacion 1 a N
Estuve diguiendo las lecciones de Construyendo una API utilizando la especificación JSON:API. Pero consulto: como se implementaria la relación 1 a N. El código específico para la relación 1 a 1 es:
public function getRelationshipLinks(): array
| {
| return ['category', 'author'];
| }
|
| public function getIncludes(): array
| {
| return [
| CategoryResource::make($this->whenLoaded('category')),
| AuthorResource::make($this->whenLoaded('author')),
| ];
| }
Y para devolver los valores al momento de armar el Documento JSON:API es:
return Document::type($this->resource->getResourceType())
->id($this->resource->getRouteKey())
->attributes($this->filterAttributes($this->toJsonApi()))
->relationshipLinks($this->getRelationshipLinks())
->links(
[
'self' => route('api.v1.' . $this->resource->getResourceType() . '.show', $this->resource)
]
)
->get('data');
El problema es que de una instancia de tipo collection, no podria consultar por getResourceType(), incluso si genero realizo una iteración sobre la colección, intenta buscar los métodos en el modelo... y termina no funcionando..
En la versón anterior de este curso se explica esto utilizando una libreria, pero en la nueva versión del curso no especifica como lograr esta relación.
Saludos.