bag

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

2 years ago

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

Free USD $19.99

Created by: Juan González

Expired Coupon

Share if you liked:

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

Published en 18 Sep 2021

Udemy UK

Lo que aprenderá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)
  • Requisitos

  • Tener fluidez usando PHP y alguno de los frameworks más conocidos (Symfony, Zend o Laravel)
  • PHP7.4+ y MySQL 5.7+
  • Administración de sistemas Linux (instalar paquetes y herramientas)
  • Saber gestionar repositorios con GIT
  • Configuración de entornos de desarrollo con Docker (Docker-Compose, Dockerfile, Make)
  • Programación orientada a objetos y conocimiento de patrones de diseño
  • Descripción

    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

    1. Introducción al curso

    2. Requisitos básicos para este curso

      1. Requisitos del sistema

      2. Configurando WSL 2 en Windows 10

    3. Entorno de Docker

      1. Archivos y carpetas para el entorno

      2. Configuración de Nginx

      3. Configuración de PHP

      4. Configuración de Docker Compose

      5. Makefile

      6. Archivos y carpetas para RabbitMQ

      7. Configurar entorno de docker para RabbitMQ

    4. Repositorio Remoto

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

    5. Creación de proyecto Symfony

    6. Instalación de librerías adicionales

      1. Librerías necesarias para el proyecto

      2. Configuración básica de API Platform

    7. Registro de usuarios

      1. Librerías necesarias y entidad User

      2. Mapeo de la entidad User

      3. Creando BaseRepository

      4. Creando UserRepository

      5. Listener para capturar excepciones

      6. Migración para crear tabla user

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

      8. Preparando servicio y controller

      9. Actualizando API Platform (swagger)

      10. Creando EncoderService

      11. Creando RequestService

      12. Actualizando security.yaml

      13. Completando la lógica del servicio

    8. Servicio de Mailer

      1. Creando estructura de archivos

      2. Creando proyecto Symfony y cambiando namespace

      3. Instalar dependencias necesarias

      4. Cómo funciona RabbitMQ?

      5. Instalar Messenger component y crear clase para el mensaje

      6. Configurar Messenger en la API

      7. Enviando nuestro primer mensaje a RabbitMQ

      8. Configurar Messenger component en Mailer

      9. Instalar MailCatcher y TwigBundle

      10. Crear servicio, clase para rutas y plantillas

      11. Añadir lógica a MailerService

      12. Consumiendo nuestro primer mensaje de RabbitMQ

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

      1. Crear estructura de archivos y actualizar API Platform

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

    10. Acción para activar cuenta de usuario

    11. Acción para acceder (Login)

      1. Configurando el Firewall

      2. UserProvider y actualización de security.yaml

      3. Actualizar endpoint para login

      4. Añadir o quitar información del token

    12. Acción para restablecer contraseña

      1. Explicación del proceso

      2. Crear archivos necesarios y actualizar API Platform

      3. Crear mensaje y actualizar configuración de Messenger

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

      5. Creando mensaje y actualizando configuración en Mailer

      6. Creando plantilla y actualizando servicio de Mailer

      7. Consumiendo mensajes y comprobando errores

    13. Acción para restablecer contraseña

      1. Crear estructura de archivos

      2. Añadir lógica en el servicio

    14. Acción para cambiar la contraseña

      1. Crear archivos y actualizar API Platform

      2. Añadir lógica y probar el endpoint

      3. Usando Argument Resolver para inyectar al usuario autenticado

    15. Refactorizando controladores y desacoplándolos de los servicios

    16. Test funcionales y unitarios de todos los endpoints creados.

      1. Instalando dependencias y configurando el proyecto

      2. Creando Fixtures para User

      3. Creando base de datos de testing

      4. Creando la clase TestBase para tests funcionales

      5. Test para la acción de login

      6. Test para la acción de registro

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

      8. Test para acción de restablecer contraseña

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

      10. Test para acción de cambiar contraseña

      11. Creando UserServiceTestBase para tests unitarios

      12. Test para el servicio de activación de cuenta

      13. Test para el servicio de registro de usuarios

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

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

      16. Test para el servicio de resetear contraseña

      17. Test para el servicio de cambiar contraseña

    17. Acción para subir avatar de usuario

      1. Crear estructura de carpetas y actualizar API Platform

      2. Optimizar Swagger e instalar dependencias necesarias

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

      4. Configurar nuestra API para subir archivos a la nube

      5. Añadiendo lógica de servicios y probando

      6. Test unitario para FileService

      7. Test unitario y funcional para acción de subir avatar

    18. OAuth (Facebook Login)

      1. Instalando dependencias y creando App en Facebook

      2. Actualizando configuración y usando Adapter Pattern para cliente HTTP

      3. Crear ficheros necesarios y actualizar API Platform

      4. Añadir lógica a los servicios

      5. Probando y explicando el proceso entero.

    19. Configurando endpoints para usuario

      1. Crear voter para User

      2. Actualizando API Platform

      3. Tests funcionales para los endpoints

    20. Grupos de usuarios

      1. Crear entidad y actualizar relación con User

      2. Mapeo de la entidad

      3. Migración para crear la tabla user_group

      4. Actualizando API Platform

      5. Creando voter para Group

      6. Extensiones de Doctrine para controlar la seguridad de subrecursos

      7. Actualizando Fixtures y testeando endpoint para obtener grupos de usuarios

      8. TestBase para grupo y testeando endpoint para obtener grupos

      9. Test del endpoint para actualizar grupos

      10. Test del endpoint para eliminar grupos

      11. Test del endpoint para obtener usuarios de un grupo

    21. Gestión de grupos

      1. Crear entidad para solicitudes

      2. Mapeo de la entidad para solicitudes

      3. Crear migración

      4. Crear repositorio

      5. Crear clase para mensaje de RabbitMQ y actualizando configuración

      6. Creando excepciones y añadiendo lógica al servicio

      7. Actualizar API Platform y probar envío de solicitud

      8. Crear mensaje y configuración en Mailer

      9. Crear plantilla y actualizar MailerService

      10. Creando Handler para procesar mensajes y probar

      11. Creando ficheros y configuración para endpoint de aceptar solicitudes

      12. Refactorizando BaseRepository y añadiendo lógica al servicio

      13. Testeando la acción de aceptar solicitudes

      14. Crear archivos para endpoint para eliminar usuarios de un grupo

      15. Creando excepciones y añadiendo lógica al servicio

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

    22. Categorías

      1. Crear entidad

      2. Crear mapeo de la entidad

      3. Crear migración

      4. Actualizar API Platform

      5. Crear fichero de grupos de serialización

      6. Actualizando extensión de Doctrine

      7. Crear voter para Category

      8. Introducción al sistema de eventos y listeners

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

      10. Testeando endpoints de categoría

    23. Movimientos

      1. Crear entidad

      2. Crear mapeo de la entidad

      3. Crear migración

      4. Actualizar API Platform

      5. Crear fichero de grupos de serialización

      6. Actualizando extensión de Doctrine

      7. Crear voter para Movement

      8. Usando PreWriteListener para validar la creación de movimientos

    24. Subir archivos de movimientos

      1. Crear estructura de ficheros para subir archivos

      2. Añadiendo lógica a los servicios y probando

      3. Testing de la acción para subir archivos

      4. Crear estructura de ficheros para descargar archivos

      5. Añadiendo lógica para descargar archivos

      6. Testeando acción para descargar archivos

      7. Refactorizando los enpoints y tests

    25. Filtros

      1. Configurando DateFilter en User

      2. Configurando SearchFilter en User

      3. Configurando BooleanFilter en User

      4. Configurando NumericFilter en Movement

      5. Configurando RangeFilter en Movement

      6. Creando custom SearchFilter

      7. Creando custom BooleanFilter

      8. Creando custom ExistsFilter

      9. Creando custom OrderFilter

      10. Creando custom NumericFilter y RangeFilter

      11. Filtros en entidades anidadas

    26. Modificando la API, trucos y consejos

      1. Decorando la respuesta de nuestra API

      2. Usando SQLite para acelerar tests funcionales

      3. Modificando la respuesta de nuestros endpoints

      4. Anidando subrecursos

    ¿Para quién es este curso?

  • 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

  • You should keep in mind that the Coupons last a maximum of 4 days or until 1000 registrations are exhausted, but it can expire anytime. Get the course with coupon by clicking on the following button:

    (Coupon valid for the first 1000 registrations): 40428F56E5E3891564FC
    Udemy UK
    Tags:

    Add a new comment

    Subscribe to our newsletter
    Receive the latest Coupons and promotions Request Coupon