> Manuales > Manual del desarrollo de API con Laravel

Cuáles son los packages más adecuados dentro del ecosistema que nos ofrece Laravel para la construcción de un API con autenticación de usuarios.

Packages del ecosistema Laravel para construir un API

Uno de los muchos tipos de proyectos que podemos desarrollar en Laravel sería un API o servicio web. Este es un modelo de proyecto muy habitual en el mundo de la web, especialmente adecuado para hacer aplicaciones modernas, donde tenemos un backend separado del frontend, que son dos proyectos independientes.

En el backend tenemos el API, que es capaz de recibir solicitudes HTTP a URLs, en rutas de una web a las que llamamos endpoints, para realizar operaciones y devolver una respuesta en formato JSON. Esas operaciones son generalemente las consultas, altas, bajas y modificaciones, sobre los recursos que ese API disponga.

Para consumir un API se usará un frontal, el cual hace las correspondientes conexiones a los endpoints del API por los usuarios y presentará una salida acorde con el medio donde ese frontal esté construido. Podemos tener incluso diversos frontales que usen el mismo servicio web, por ejemplo en Javascript para usarlo en una web o en Java para usarlo en una aplicación nativa de Android.

Instalar funcionalidades de API en Laravel 11

Antes de nada debemos mencionar que en un proyecto Laravel 11 predeterminado, al menos en versiones recientes, no está disponible de entrada la configuración para desarrollar APIs. Esto es importante, porque si no lo tenemos algunos pasos del manual no los podrás realizar o verás que te faltan archivos.

Un síntoma claro de que no tienes disponible en el proyecto las necesidades para crear un API REST es que no encontrarás el archivo de rutas del api: routes/api.php.

Crearlo es tan sencillo como lanzar el siguiente comando de Artisan:

php artisan install:api

Aclarando los packages de Laravel para construir un API

En este artículo vamos a mencionar las herramientas que Laravel nos ofrece para la construcción de servicios web y por qué son las más adecuadas para nuestro cometido. A lo largo de este artículo y los siguientes veremos además los pasos y configuraciones necesarios para disponer de un proyecto Laravel para desarrollar un API backend, a la que podremos conectar mediante cualquier tipo de frontend. Lo haremos sobre una instalación limpia del framework, construyendo desde cero un proyecto Laravel que funcionará como servicio web,

El objetivo de este proyecto sería usar el backend de Laravel desde una aplicación frontend de tipo SPA o desde una aplicación móvil.

Por qué usar Laravel Sanctum y Fortify

De entre todos los paquetes oficiales, mantenidos por el mismo equipo de Laravel, para realizar estas funcionalidades de creación de un API los más adecuados son los siguientes:

Estos paquetes son a nuestro juicio los más adecuados porque son totalmente agnósticos al frontend. Es interesante porque el proyecto que queremos construir se basa simplemente en un API a la que cualquier tipo de frontal se podrá conectar para realizar uso del servicio web. Mediante este mismo API podríamos dar servicio a una SPA, una PWA, desarrolladas con Javascript Vanilla, Web Components, o frameworks como Angular o Vue, React, NextJS, etc. Pero también será posible usarla para dar servicio a un frontal para una aplicación móvil o de escritorio.

¿Qué tal Laravel Breeze o Jetstream?

Existen diversos starter kits en Laravel como Breeze o Jetstream. Mientras que Laravel Breeze es una extensión sencilla para aportar la parte de autenticación de usuarios en aplicaciones limpias de Laravel, Laravel Jetstream va bastante más allá, realizando no solo la parte del registro y login de usuarios, sino también un panel de administración, autenticación a dos pasos y muchas otras cosas.

Laravel Breeze o Jetstream están muy bien, solo que están dirigidos a sitios o aplicaciones web donde el mismo servidor se va a encargar tanto de la parte del frontend como del backend. Además, estos starter kits introducen dependencias de frontend como Tailwind, Alpine, Inertia, Livewire, etc. Nosotros no queremos nada de esto en este proyecto, ya que los frontales que se irán realizando serán proyectos totalmente independientes de este backend.

Instalación de un proyecto nuevo con Laravel

Para la construcción de un API usando Laravel Sanctum y Laravel Fortify es muy recomendable comenzar en un proyecto nuevo de Laravel, ya que las dependencias que vamos a instalar no queremos que causen conflictos con personalizaciones que se hayan realizado al framework a lo largo del tiempo.

Si ya tenemos un proyecto de Laravel que estamos usando como servicio web o API realmente no nos aportará mucho Sanctum o Fortify, puesto que seguramente ya tengamos todo lo que nos hace falta para cubrir sus utilidades, como la autenticación de usuarios.

Podemos crear un nuevo proyecto de Laravel de cualquier manera que deseemos, desde una instalación clásica de Laravel hasta usando Sail si preferimos dockerizar nuestro entorno de desarrollo.

En este punto no vamos a explicar cómo crear tus proyectos Laravel, dado que se ha visto anteriormente en DesarrolloWeb.com:

En la actualidad yo recomendaría crear el proyecto Laravel usando Sail, que nos permite dockerizar el entorno de desarrollo y gracias a ello conseguimos mucha más agilidad a la hora de construir todo lo que nos hace falta para desarrollar, tanto el servidor web, como la base de datos, gestores de colas, capturadores de emails, etc. Puedes aprender en la Guía de Laravel Sail.

De todos modos, al final da un poco igual cómo desarrolles con Laravel, puedes usar el servidor integrado perfectamente, igual que una máquina Homestead. Lo importante es que hayas construido tu nueva aplicación Laravel desde cero antes de ponernos a instalar Laravel Sanctum o Laravel Fortify.

En el siguiente artículo conoceremos más de cerca sobre Laravel Sanctum y veremos cómo lo vamos a instalar.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual