01_Introducción y 20_rutas

Creando el proyecto

Vamos a instalar e un

mkdir books
cd books
1
2
3
4
5
laravel new api --git
cd api
git init
git add *
git commit -m inicial

Vamos documentando el Readme.md

Creando los modelos, controladores y factorys

Para hacerlo de forma más rápida usamos blueprint

  1. Instalamos el paquete
 composer require laravel-shift/blueprint --dev
  1. Creamos el fichero de especificación de construcción
php_ artisan blueprint:new
  1. Especificamos en el fichero los modelos y los controladores
models:
  Profesor:
    nombre: string
    email: string
    proyecto_id: id
    relationships:
      hasMany: Proyecto
  Proyecto:
    titulo: string
    web: string
    horas: integer
    user_id: id
controllers:
  ProyectosController:
    resource: api
  ProfesoresController:
    resource: api.profesor
  UserController:
    resource: api 
  1. Modificamos previa publicación opciones de blueprint
  2. Primero publicamos
php_ artisan vendor:publish

2. Ahora modificamos el fichero generado en config/blueprint.yaml

//// . . . 
'use_constraints' => true,
////. . .
'use_guarded' => true,
///. . .
4. Ejecutamos el fichero

Rutas

Como la aplicación va a ser un API, vamos al fichero de rutas routes/api.php

Entre web.php y api.php hay como diferencias los middeleware que se utilizan. Esto se puede ver en


En el caso de api.php, casi el único middleware que utiliza es el ThrottleRequests, es decir, poder crear un límite de peticiones, no necesitamos sesiones, cookies ni compartir errores entre ficheros. Vemos si hacemos un route:list que las rutas que aparecen son las de web.php y también las de api.php que no habíamos visto Las de api tiene prefijo, es por que se establece en el routeservicesproviders.php

Ahora vamos a crar un modelo, y queremos crear también la migración y el factory y también un controlador con todos los métodos de gestión rest que ya hemos visto

1
php artisan make:model Book -mf --api
Ahora debemos de agregar rutas

imagen api

De todas ellas, como solo estamos creando un api, que es para consultar, no realizaremos la acción de editar para modificar, ni de crear por lo que las rutas nos quedarían

imagen api

Creamos estas rutas en el fichero routes/api.php
1
Route::apiResource('books', \App\Http\Controllers\BookController::class);
Podemos ejectura route:list para ver las 5 rutas que hemos creado