No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de API REST con Laravel

Curso de API REST con Laravel

Profesor Italo Morales F

Profesor Italo Morales F

Versión 1: recurso

8/18
Recursos

Aportes 7

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para mayor información sobre Resource en Laravel, se puede visitar siempre la documentación oficial:

https://laravel.com/docs/8.x/eloquent-resources

Eloquent: API Resources
Cuando se construye una API, se puede necesitar una capa de transformación entre el Modelo Eloquent y la respuesta JSON.
En esta capa de Recursos se pueden limitar la cantidad de campos del registro y mejorar la presentación de los mismos.
Documentación

Versión 1: recurso

Obtener el recurso con un mejor formato, esto va a crear una carpeta:
en terminal hacemos lo siguiente:

php artisan make:resource V1/PostResource

nos dirigimos al archivo creado dentro de app > Http > resources > PostResource.php
así quedaria:

<?php

namespace App\Http\Resources\V1;

use Illuminate\Http\Resources\Json\JsonResource;

class PostResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'title' => $this->title,
            'slug' => $this->slug,
            'excerpt' => $this->excerpt,
            'content' => $this->content
        ];
    }
}

en PostController.php
vamos a retornar ese recurso que estamos utilizando.
agregamos lo siguiente:

use App\Http\Resources\V1\PostResource;
public function show(Post $post)
    {
        return new PostResource($post);
    }

Esto Funciona de la siguiente manera:
Tenemos una ruta
la ruta dispara un controlador
el controlador tiene dentro e si una acción
esta acción retorna ese recurso y eso es lo que le mostramos al usuario o al software que se vaya a conectar a nuestra aplicación.

En el Curso Avanzado de Laravel se explican un poco más detallado las rutas de recursos dentro de Laravel, en específico en esta clase, aquí el profesor hace ejemplos de cómo personalizar lo que el API devuelve usando los Resources de Laravel 👀:
.
https://platzi.com/clases/1959-laravel-avanzado/30083-capa-de-transformacion-con-api-resources/

Remover el key data de la respuesta

Si no les gusta el key data que se agrega automáticamente, pueden quitarlo agregando la siguiente propiedad a su Resource

    public static $wrap = null;
Si tienen problemas al consultar los datos en la versión actual de Laravel y no están seguros de qué se debe enviar a `PostResource`, recuerden que se trata de la variable que contiene los datos resultantes de la consulta. En el ejemplo, esta variable es `$post`. ` public function show($id)    ` `{ ` ` $post = Post::find($id);        ` ` return new V1PostResource($post);    ` `}`
de donde sale excerpt si no existe como campo en la base de datos.