Profesor | Jesús Iván Saavedra Martínez | lu mi vi | 7 a 8 | P108 |
Ayudante | Fernando Antonio Sánchez Montoya | ma ju | 7 a 8 | P108 |
Ayud. Lab. | Carlos López Rodríguez | ju | 12 a 14 |
Introducción
El lanzamiento del nuevo sistema REST como protocolo de intercambio y manipulación de datos en los servicios de internet cambió por completo el desarrollo de software a partir del año 2000. Prácticamente toda empresa o aplicación dispone de una API para su administración de negocio. En la actualidad, no existe sistema que no disponga de una API para la creación de servicios profesionales. Twitter, YouTube, sistemas de identificación con Facebook… hay cientos de empresas que generan negocio gracias a las APIs REST.
Por otra parte, los microservicios son un enfoque arquitectónico y organizativo para el desarrollo de software compuesto por pequeños servicios independientes que se comunican a través de APIs bien definidas. Las arquitecturas de microservicios hacen que las aplicaciones sean más fáciles de escalar y más rápidas de desarrollar. Los ejemplos de Netflix o Spotify muestran por qué las grandes compañías deciden desmontar su arquitectura y cambiarla por los microservicios. Compañías como Google o Amazon son un claro ejemplo de esta arquitectura.
Dinámica
El curso de será impartido en una modalidad asíncrona, por lo que no será necesario tomar clases virtuales en horarios específicos, excepto sesiones de repaso y seguimiento del curso programadas con una semana de anticipación, lo que permite al alumno ser independiente de organizar su tiempo para revisar el material y resolver las actividades del curso.
Aprendizajes esperados
Al finalizar este curso, el alumno será capaz de desarrollar APIs REST con las tecnologías y arquitecturas más utilizadas hoy en día. Adicionalmente, el alumno aprenderá buenas prácticas de programación para aplicar en su vida académica y profesional.
Principales herramientas y tecnologías
Git - Hibernate - Java - JPA – JSON - Maven – MongoDB - SQL - Spring Boot - Spring Cloud - Swagger
Criterios de evaluación
50% Proyecto
50% Prácticas
20% Examen Teórico
Acceso a plataformas y primera clase
- Enlace de acceso a la primera sesión el martes 15 de febrero de 2022 - 7:00 am: https://meet.google.com/wyp-xnjr-dpe
- Enlace de acceso a classroom: https://classroom.google.com/c/NDY0MDcwNTAxMjYx?cjc=zt5u7mk
- Enlace de acceso a slack: https://join.slack.com/t/dwb2022-2/shared_invite/zt-133l3zhuo-B1fVp9zJKwVmujy_hpl5KQ
Temario
Unidad I - Introducción a los Servicios Web (WS)
1.1. Definición de WS
1.2. Tipos de WS
1.3. Importancia de WSDL en los WS
1.4. Diferencia entre WSDL y SOAP
Unidad II - Conceptos de Interfaz de Programación de Aplicaciones (API)
2.1. Conceptos básicos de API
2.2. Principios de la arquitectura REST
2.3. Métodos HTTP en una API REST
2.4. Códigos de estado de respuesta HTTP
Unidad III - Implementación de APIs REST
3.1. Tecnologías para el desarrollo de APIs
3.2. Repositorios, Servicios y Controladores
3.3. Creación de API Endpoints
3.4. Conexión a Bases de Datos
Unidad IV - Arquitectura de Microservicios
4.1. Conceptos básicos de Microservicios
4.2. Implementación de aplicaciones basadas en microservicios
4.3. Centralización de la configuración
4.4. Tolerancia a fallos y latencia
Unidad V - Seguridad y Pruebas Unitarias
5.1. Restricción de acceso a APIs
5.2. Seguridad con Json Web Token
5.3. Vulnerabilidades de OWASP
5.4. Pruebas unitarias en Spring