Guía definitiva para crear APIs con Symfony 5 y API Platform

Guía definitiva para crear APIs con Symfony 5 y API Platform



Guía definitiva para crear APIs con Symfony 5 y API Platform


✅ BUY NOW ✅


Creación de una API con Symfony y API Platform. Estructura de servicios, RabbitMQ, Docker y mucho más!


Crear APIs con Symfony 5 y API Platform.
Comunicación entre servicios con RabbitMQ
Creación de entornos de desarrollo con Docker en Linux, Mac y Windows
Aprender patrones de diseño y arquitecturas de software para desarrollar aplicaciones fáciles de mantener
Aprender a usar Xdebug para detectar y corregir errores de forma eficiente
Crear tests funcionales
Crear tests unitarios
Autenticación OAuth (Facebook login)


Description

En este curso aprenderás no solo a crear una API con Symfony 5 y API Platform usando PHP 7.4, sino que aprenderás a explotar las herramientas disponibles para desarrollar tus aplicaciones tales como: Docker, PHPStorm, Xebug RabbitMQ y muchas más.

El proyecto estará estructurado en 3 servicios:

- Una API para gestionar movimientos de contabilidad

- Un servicio de RabbitMQ para procesar mensajes

- Un servicio de mailing que leerá mensajes de RabbitMQ y enviará emails a los usuarios

Aprenderás a leer código de librerías de terceros y a crear patrones de diseño y arquitecturas escalables y fáciles de mantener.

También aprenderás a cubir todos los casos de uso de tus aplicaciones tanto con tests funcionales como unitarios.

Al terminar este curso, serás capaz de crear APIs robustas que te ayudarán a conseguir más logros en tu carrera profesional :) 

Tabla de contenidos

Introducción al curso

Requisitos básicos para este curso

Requisitos del sistema

Configurando WSL 2 en Windows 10

Entorno de Docker

Archivos y carpetas para el entorno

Configuración de Nginx

Configuración de PHP

Configuración de Docker Compose

Makefile

Archivos y carpetas para RabbitMQ

Configurar entorno de docker para RabbitMQ

Repositorio Remoto

Enlace al repositorio con el código del curso por secciones

Creación de proyecto Symfony

Instalación de librerías adicionales

Librerías necesarias para el proyecto

Configuración básica de API Platform

Registro de usuarios

Librerías necesarias y entidad User

Mapeo de la entidad User

Creando BaseRepository

Creando UserRepository

Listener para capturar excepciones

Migración para crear tabla user

Instalar y configurar librería para generar JSON Web Tokens (JWT)

Preparando servicio y controller

Actualizando API Platform (swagger)

Creando EncoderService

Creando RequestService

Actualizando security.yaml

Completando la lógica del servicio

Servicio de Mailer

Creando estructura de archivos

Creando proyecto Symfony y cambiando namespace

Instalar dependencias necesarias

Cómo funciona RabbitMQ?

Instalar Messenger component y crear clase para el mensaje

Configurar Messenger en la API

Enviando nuestro primer mensaje a RabbitMQ

Configurar Messenger component en Mailer

Instalar MailCatcher y TwigBundle

Crear servicio, clase para rutas y plantillas

Añadir lógica a MailerService

Consumiendo nuestro primer mensaje de RabbitMQ

Acción para reenviar email de activación de cuenta

Crear estructura de archivos y actualizar API Platform

Lógica para enviar email de activación de cuenta

Acción para activar cuenta de usuario

Acción para acceder (Login)

Configurando el Firewall

UserProvider y actualización de security.yaml

Actualizar endpoint para login

Añadir o quitar información del token

Acción para restablecer contraseña

Explicación del proceso

Crear archivos necesarios y actualizar API Platform

Crear mensaje y actualizar configuración de Messenger

Añadiendo lógica al servicio y probando el envío

Creando mensaje y actualizando configuración en Mailer

Creando plantilla y actualizando servicio de Mailer

Consumiendo mensajes y comprobando errores

Acción para restablecer contraseña

Crear estructura de archivos

Añadir lógica en el servicio

Acción para cambiar la contraseña

Crear archivos y actualizar API Platform

Añadir lógica y probar el endpoint

Usando Argument Resolver para inyectar al usuario autenticado

Refactorizando controladores y desacoplándolos de los servicios

Test funcionales y unitarios de todos los endpoints creados.

Instalando dependencias y configurando el proyecto

Creando Fixtures para User

Creando base de datos de testing

Creando la clase TestBase para tests funcionales

Test para la acción de login

Test para la acción de registro

Test para la acción de pedir restablecimiento de contraseña

Test para acción de restablecer contraseña

Test para acción de reenviar email de activación

Test para acción de cambiar contraseña

Creando UserServiceTestBase para tests unitarios

Test para el servicio de activación de cuenta

Test para el servicio de registro de usuarios

Test para el servicio de solicitud de restablecimiento de contraseña

Test para el servicio de reenvío de email de activación

Test para el servicio de resetear contraseña

Test para el servicio de cambiar contraseña

Acción para subir avatar de usuario

Crear estructura de carpetas y actualizar API Platform

Optimizar Swagger e instalar dependencias necesarias

Crear Space en Digital Ocean y añadir variables en nuestra aplicación

Configurar nuestra API para subir archivos a la nube

Añadiendo lógica de servicios y probando

Test unitario para FileService

Test unitario y funcional para acción de subir avatar

OAuth (Facebook Login)

Instalando dependencias y creando App en Facebook

Actualizando configuración y usando Adapter Pattern para cliente HTTP

Crear ficheros necesarios y actualizar API Platform

Añadir lógica a los servicios

Probando y explicando el proceso entero.

Configurando endpoints para usuario

Crear voter para User

Actualizando API Platform

Tests funcionales para los endpoints

Grupos de usuarios

Crear entidad y actualizar relación con User

Mapeo de la entidad

Migración para crear la tabla user_group

Actualizando API Platform

Creando voter para Group

Extensiones de Doctrine para controlar la seguridad de subrecursos

Actualizando Fixtures y testeando endpoint para obtener grupos de usuarios

TestBase para grupo y testeando endpoint para obtener grupos

Test del endpoint para actualizar grupos

Test del endpoint para eliminar grupos

Test del endpoint para obtener usuarios de un grupo

Gestión de grupos

Crear entidad para solicitudes

Mapeo de la entidad para solicitudes

Crear migración

Crear repositorio

Crear clase para mensaje de RabbitMQ y actualizando configuración

Creando excepciones y añadiendo lógica al servicio

Actualizar API Platform y probar envío de solicitud

Crear mensaje y configuración en Mailer

Crear plantilla y actualizar MailerService

Creando Handler para procesar mensajes y probar

Creando ficheros y configuración para endpoint de aceptar solicitudes

Refactorizando BaseRepository y añadiendo lógica al servicio

Testeando la acción de aceptar solicitudes

Crear archivos para endpoint para eliminar usuarios de un grupo

Creando excepciones y añadiendo lógica al servicio

Testing de la acción para eliminar usuarios de un grupo

Categorías

Crear entidad

Crear mapeo de la entidad

Crear migración

Actualizar API Platform

Crear fichero de grupos de serialización

Actualizando extensión de Doctrine

Crear voter para Category

Introducción al sistema de eventos y listeners

Usando PreWriteListener para validar la creación de categorías

Testeando endpoints de categoría

Movimientos

Crear entidad

Crear mapeo de la entidad

Crear migración

Actualizar API Platform

Crear fichero de grupos de serialización

Actualizando extensión de Doctrine

Crear voter para Movement

Usando PreWriteListener para validar la creación de movimientos

Subir archivos de movimientos

Crear estructura de ficheros para subir archivos

Añadiendo lógica a los servicios y probando

Testing de la acción para subir archivos

Crear estructura de ficheros para descargar archivos

Añadiendo lógica para descargar archivos

Testeando acción para descargar archivos

Refactorizando los enpoints y tests

Filtros

Configurando DateFilter en User

Configurando SearchFilter en User

Configurando BooleanFilter en User

Configurando NumericFilter en Movement

Configurando RangeFilter en Movement

Creando custom SearchFilter

Creando custom BooleanFilter

Creando custom ExistsFilter

Creando custom OrderFilter

Creando custom NumericFilter y RangeFilter

Filtros en entidades anidadas

Modificando la API, trucos y consejos

Decorando la respuesta de nuestra API

Usando SQLite para acelerar tests funcionales

Modificando la respuesta de nuestros endpoints

Anidando subrecursos

Who this course is for:
Desarrolladores Web que desean pasar al siguiente nivel conociendo y explotando las herramientas disponibles en el mercado
Programadores que quieren saber qué es lo que pasa internamente en la aplicación para aumentar sus habilidades y conseguir mejores puestos de trabajo
Show more


✅ BUY NOW ✅


Other courses from Guía definitiva para crear APIs con Symfony 5 y API Platform:


Starting Your Own Podcast


Introduction to Mobile Game Programming for Beginners


Karma Yoga: The Yoga of Living In and Beyond Karma




Report Page