0% encontró este documento útil (0 votos)
232 vistas76 páginas

Curso Spring Boot

Spring Boot se utiliza para crear una API REST completa con las siguientes características: - Usa Spring Data JPA para interactuar con una base de datos MySQL - Implementa entidades, repositorios, servicios y controladores - Incluye funcionalidades como autenticación, autorización, paginación y validaciones - Usa DTOs para transferir datos entre las capas de la aplicación de forma eficiente

Cargado por

monica
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
232 vistas76 páginas

Curso Spring Boot

Spring Boot se utiliza para crear una API REST completa con las siguientes características: - Usa Spring Data JPA para interactuar con una base de datos MySQL - Implementa entidades, repositorios, servicios y controladores - Incluye funcionalidades como autenticación, autorización, paginación y validaciones - Usa DTOs para transferir datos entre las capas de la aplicación de forma eficiente

Cargado por

monica
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 76

Spring Boot

Desarrollo de una API REST utilizando Spring


Boot
Mg. Ing. Juan Carlos Arcila Diaz
API Rest conceptos Spring Data JPA

JDK 17 y Eclipse IDE Spring Security JWT

Base de datos MySQL - MariaDB Manejo de excepciones

Patrón Service, Repository Documentación con Swagger

Desarrollo de una API Rest completa


¿Qué es una API Rest?
REST define 6 restricciones arquitectónicas.
Interfaz uniforme Un recurso (todo lo que se mueve a través de HTTP) en el sistema debe tener solo un URI lógico.

Servidor de cliente Aplicaciones de cliente y servidor DEBEN evolucionar por separado sin ninguna dependencia.

Stateless El cliente y el servidor no necesitan recordar ningún estado de las comunicaciones.

Almacenable en Requiere que una respuesta se etiquete implícita o explícitamente como cacheable o no cacheable.
caché

Sistema de capas Permite que una arquitectura se componga de capas jerárquicas al restringir el comportamiento de los
componentes.

Código bajo demanda Lo servidores pueden aumentar las funcionalidades en el cliente transfiriéndole cierta lógica.
¿Qué es Spring boot?
Configurando el ambiente de desarrollo
Ediciones de Java

M SE EE
E
La edición Java La edición Java La edición Java
Micro Edition. Standard Edition. Enterprise Edition
Java Micro Edition
❑ Java ME, es una versión reducida de la edición Java Standard Edition.
Esta edición se encuentra enfocada para la creación de aplicaciones tanto
en dispositivos móviles, como dispositivos integrados.
❑ Aun que su popularidad se vio reducida por el auge de Android, hoy
en día se encuentra retomando terreno principalmente por el tema del
Internet de las cosas.
Java Standard Edition

❑ Con esta versión nosotros podemos crear tanto aplicaciones web,


como aplicaciones de escritorio.
❑ La edición cuenta con una amplia biblioteca de clases las cuales están
pensadas para agilizar el proceso de desarrollo.
Java Enterprise Edition

❑ Java Enterprise Edition, también conocido como Java EE, es la edición


más grande de Java. Esta edición contiene toda la Standard Edition y
mucho más. Por lo general es utiliza para crear aplicaciones con la
arquitectura cliente servidor.
Java EE

Java Enterprise Edition

❑ Según la definición de Sun, Java Enterprise Edition (Java EE) es el estándar de la


industria para desarrollar aplicaciones Java portables, robustas, escalables y
seguras en el lado del servidor (server-side). Basado en Java SE, proporciona APIs
para servicios web, modelo de componentes, gestión y comunicación.
JEE Arquitectura
JEE versiones e historia

SUN Microsystems quién guía su


desarrollo hasta el año 2010 dónde es
comprada por Oracle. Esto hace que todos
los derechos de la marca Java pasen a ser
propiedad de Oracle.
JEE versiones e historia
Jakarta EE

En 2017 Oracle decide que deja de controlar el desarrollo de Java EE y


decide pasarlo a la comundidad para que sea guiado en un proceso más
abierto y flexible por la Eclipse Foundation.

Si bien en este proceso de traspaso se decide no pasar la marca Java EE y


la comunidad tiene que renombrar el proyecto a Jakarta EE. En este proceso
de renombrado, otros elementos como el servidor Glassfish también se han
visto afectados y ahora se llama Eclipse Glassfish.

El nombre Jakarta EE es elegido por la comunidad Eclipse en una votación


entre Jakarta EE y Enterprise Profile.

Así que Jakarta EE pasa a ser la nueva plataforma opensource de Java EE


gestionada por Eclipse Foundation.
JEE versiones e historia
Jakarta EE

Jakarta EE 8 Jakarta EE 9 Jakarta EE 9.1 Jakarta EE 10


▪ Java SE 17
▪ Java SE 8 ▪ Java SE 8
▪ Java SE 8 ▪ Java SE 11
▪ API namespace ▪ Java SE 11
▪ Compatibilidad ▪ Eliminación de
se mueven de ▪ Soporte JDK 11
con Java EE 8 elementos obsoletos en
javax to jakarta
Servlet, Faces, CDI y EJB
10-09-2019 08-12-2020 25-05-2021 13-09-2022
JEE versiones e historia
Jakarta EE

Además los paquetes deJakarta EE , que en Jakarta EE 8.0 se mantuvieron iguales,


han pasado a ser jakarta.* en Jakarta EE 9.0. Desapareciendo los javax.* De esta
forma tenemos, entre muchos otros:
JEE versiones e historia
Jakarta EE

Jakarta EE , anteriormente Java Platform Enterprise Edition ( Java EE ) y Java 2


Platform Enterprise Edition ( J2EE ), es un conjunto de especificaciones que amplían
Java SE con especificaciones para características empresariales como computación
distribuida y servicios web . Las aplicaciones de Jakarta EE se ejecutan en tiempos de
ejecución de referencia , que pueden ser microservicios o servidores de aplicaciones,
que manejan transacciones, seguridad, escalabilidad, concurrencia y administración de
los componentes que está implementando.
JDK 17 LTS

EclipseIDE
Spring Tools
Creando el proyecto y agregando
dependencias
Base de datos MySQL/MariaDb
Esquema del proyecto
JSON
{token} RestController Service Layer

DTO Entity

Web Repository
Browser Layer

Cliente API RESTful

Database

Arquitectura estructural
Lombok
Lombok

Lombok es una librería que ofrece una serie de ventajas, de las que
podemos destacar:

● Elimina código repetitivo y nos facilita generar código

● Inyecta código sobre el código que hemos desarrollado


Configurando el acceso a datos
Entity
JAVA Persistence API (JPA)

JPA es la propuesta estándar que ofrece Java para implementar un Framework


Object Relational Mapping (ORM), que permite interactuar con la base de datos
por medio de objetos, de esta forma, JPA es el encargado de convertir los objetos
Java en instrucciones para el Manejador de Base de Datos (MDB).

@Entity

● Esta anotación se debe de definir a nivel de clase y sirve únicamente para


indicarle a JPA que esa clase es una Entity.

@Table

● Esta anotación nos permite configurar el nombre de la tabla donde queremos


almacenar la entidad mediante el atributo "name".
JAVA Persistence API (JPA)

@Column

● Nos sirve para especificar el nombre de la columna en nuestra tabla de base


de datos.

@Id

● Establece la llave primaria, lo que indica que el campo declarado a


continuación es la clave principal de la entidad actual.
Repository
Repository

En Spring existen los componentes, estos permiten detectar los beans y


colocarlos dentro de su contexto para ser utilizados. Un tipo de componente en
Spring son los estereotipos, entre los más comunes tenemos los: @Controller,
@Service, @Repository, @RestController.

En Spring un "Repository" es el componente encargado de resolver el acceso a los


datos de nuestra aplicación.
Repository

Spring Data JPA proporciona soporte de repositorio para la API de persistencia de


Jakarta (JPA). Facilita el desarrollo de aplicaciones que necesitan acceder a
fuentes de datos JPA.

Para implementar un componente Respository se necesita agregar una Interface


que extienda de las interfaces disponibles de Spring Data JPA, indicando la clase
de dominio para administrar, así como el tipo de ID de la clase de dominio como
argumentos de tipo.
Service
Service

Esta capa se usa para construir una clase de Servicio que habitualmente se
conecta a varios repositorios, agrupa su funcionalidad y lógica.
@Service es un componente y un estereotipo de Spring que forma parte de "la
capa de servicio".
RestController
RestController

En el enfoque de Spring para construir servicios web RESTful, las solicitudes HTTP
son manejadas por un controlador. Estos componentes están identificados por la
anotación @RestController.
Peticiones HTTP con Postman
Paginación
Validaciones
DTO
Data Transfer Object (DTO)

DTO es un patrón de arquitectura propuesto por Martin Fowler en su libro de


patrones, descrito como “Un objeto que transporta datos entre procesos para
reducir el número de llamadas a métodos”.
Beneficios de utilizar el patrón DTO.

● Reducir la cantidad de información que transferimos entre las capas


● Múltiples operaciones para extraer la información
● Adaptar los datos a una salida específica
Excepciones personalizadas
Controlando errores en el Business
Service
Estandarizando la respuesta
Entity Pedido y DetallePedido
Repository Pedido y DetallePedido
Service Pedido
Controller Pedido
Peticiones HTTP con Postman
Gestión de usuarios
Autenticación y Autorización
Data Transfer Object (DTO)

DTO es un patrón de arquitectura propuesto por Martin Fowler en su libro de


patrones, descrito como “Un objeto que transporta datos entre procesos para
reducir el número de llamadas a métodos”.
Beneficios de utilizar el patrón DTO.
Data Transfer Object (DTO)

DTO

También podría gustarte