0% encontró este documento útil (0 votos)
386 vistas

Spring Boot

Este documento explica Spring Boot, una herramienta para crear aplicaciones web con Spring Framework. Cubre temas como configurar el entorno de desarrollo, crear una API REST, documentarla con Swagger, inyección de dependencias con Spring Data JPA y códigos de respuesta HTTP.

Cargado por

lidia.china.diaz
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
386 vistas

Spring Boot

Este documento explica Spring Boot, una herramienta para crear aplicaciones web con Spring Framework. Cubre temas como configurar el entorno de desarrollo, crear una API REST, documentarla con Swagger, inyección de dependencias con Spring Data JPA y códigos de respuesta HTTP.

Cargado por

lidia.china.diaz
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 65

SPRING BOOT

INTRODUCCIÓN
Spring Boot es una herramienta que permite agilizar el desarrollo de aplicaciones web con Spring
Framework. En este curso introductorio a Spring Boot, aprenderemos cómo configurar el entorno de
trabajo, donde utilizaremos el IDE Eclipse, Maven como gestor de dependencias y PostgreSQL como
gestor de bases de datos.
Aprenderemos a crear una API REST y documentarla usando Swagger y comprederemos el concepto de
inyección de dependencia, se hará uso de Spring Data JPA para el acceso a bases datos.
Herramientas Java 8 a 17
de instalacion

Eclipse
API REST
API significa Aplication interface
programming o interfaz de programacion
de aplicaciones.
Un api es un mecanismo que permite a
dos componentes de software
comunicarse entre sí mediante un
conjunto de definiciones y protocolos.
La interfaz se define como el contrato de
servicio entre dos aplicaciones, este
contrato establece como se comunican
mediante solicitudes y respuestas.
TIPOS DE API REST
Existen tres tipos de Apis:
Privadas: Se utilizan internamente entre
las aplicaciones de una empresa, es decir
localmente.
Socios: Se utilizan entre socios
comerciales o para permitir la integracion
entre diferentes softwares.
Publicos: Se utilizan libremente, son
aplicaciones dispuestas por terceros para
que los desarrolladores puedan integrarse
con otras aplicaciones.
Son un conjunto de metodos de
peticion para indicar la accion que
se desea realizar para un recurso
determinado.
Aunque estos tambien pueden ser
Metodos HTTP sustantivos, estos metodos de
solicitud son llamados HTTP verbs.
TIPOS DE METODOS HTTP

POST: se utiliza para enviar una


GET: solicita una representación de
entidad a un recurso en específico
un recurso específico, sirve para
cambiando el estado o efectos
recuperar datos.
secundarios en el servidor.

PUT: reemplaza todas las


representaciones actuales del DELETE: borra un recurso en
recurso de destino con la carga util específico.
de la petición.
CÓDIGOS DE
RESPUESTA HTTP
Los códigos de respuesta http se define como los
mensajes que devuelve el servidor cada vez que el
navegador realiza una petición al servidor.
Cuando el navegador realiza la peticion al servidor
pueden ocurrir dos cosas:
Que no exista ningun error – envias una solicitud y el
servidor devuelve lo que se pide.
Que exista un error: envias la solicitud al servidor y
se produce un error.
TIPOS DE
CÓDIGOS
CÓDIGOS DE ESTADO HTTP 1XX

101 : Este código notifica que el servidor


ha recibido la primera peticion y está
esperando recibir más instrucciones del
navegador.

102: Se utiliza cuando el servidor acepta


un cambio propuesto por el navegador.

103 : Se utiliza para reanudar una peticion


que previamente fue perdida o cancelada.
CÓDIGOS DE ESTADO 2XX
Son respuestas satisfactorias, indican que la petición fue procesada correctamente, por lo que lo ideal es que todas las webs devuelvan este
código HTTP. Generalmente, como la petición fue exitosa, no se muestra el código de estado HTTP, el navegador únicamente devuelve el
contenido que el usuario solicitó.

203: Non authoritative


information. La peticion del 204 no content la peticion del
201 CREATED : La peticion del
200 ok :Se utiliza cuando la navegador se completó navegador se completó
navegador se completó
peticion se realizó de manera correctamente, pero el correctamente, pero la respuesta
correctamente y se creó un
exitosa.Indica que todo ésta bien. contenido corresponde a un no muestra ningun tipo de
nuevo recurso.
servidor diferente al que se ha contenido.
realizado la peticion

205: Reset content se utiliza


cuando la peticion del usuario se
206 : Partial content se utiliza 207 : Multi status se devuelve un
completa,pero es necesario
cuando la peticion se completa, archivo xml que contiene varias
volver a cargar la página.Es muy
pero solo se devuelve parte del respuestas diferentes en funcion
habitual cuando se envian datos
contenido solicitado. de las peticiones realizadas.
a traves de un formulario de
contacto y se recarga la página.
305 Use proxy : Se utiliza cuando el 306 Switch Proxy: En la actualidad
300 Multiple choices : Ante una
recurso solicitado debe obtenerse a este código de estado HTTP ya no se
solicitud existe más de una opcion para
traves de un proxy location situado en utiliza, pero se reserva para futuros
acceder al mismo recurso.
la cabecera. casos.

CÓDIGOS DE 301 Moved permanently: El recurso


solicitado se movio de forma 307 Temporary redirect : El recurso

ESTADO HTTP 3XX permanente y el navegador es


redirigido automaticamente a la nueva
ubicación. Las redirecciones son una
304 Not modified : El navegador
pregunta al servidor si el recurso ha
sido movido desde la última vez que lo
que solicita al navegador se puede
obtener en otro lugar, pero
unicamente para esta peticion para
buena opcion paraque google no nos consulto y este no ha sido cambiado. proximas peticines se puede utilizar la
penalice si tenemos demasiados ubicación original.
errores 404 en nuestra página web.

302 Moved temporarily : El recurso 308 Permanent redirect : El recurso


splicitado se movio de forma temporal 303 See other : Indica que el recurso solicita el navegador se encuentra en
y el navegador es redirigido solicitado se movio, pero no hay otra ubicación y el cambio es
automaticamente a esa nueva ninguna redireccion hecha. permanente. No cambia el metodo
ubicación. htto para la nueva pericion.
CÓDIGOS DE ESTADO HTTP 4XX
407 Proxy Authentification 408 Request Timeout: Este
400 Bad request : El servidor no
Required: Un código de estado código HTTP se muestra cuando
entiende la peticion del
similar al 401, pero en este caso el navegador ha tardado tanto
navegador porque la sintaxis no
el navegador debe autenticarse tiempo en realizar su petición que
es correcta.
primero mediante un proxy. el servidor ya no la espera.

409 Conflict: No se pudo 429 Too Many Request: El


401 Unauthorized: La peticion 406 Not acceptable : El recurso
completar la petición porque se navegador realiza demasiadas
que realiza el navegador precisa solicitado tiene un formato que
produjo un conflicto con el peticiones en un período de
autenticaion no es aceptado por el navegador.
recurso solicitado. tiempo determinado.

410 Gone: No es posible


encontrar el recurso solicitado y
405 Method not allowed :El
402 Payment required : Es un la ausencia se considera 423 Locked: Se muestra este
navegador utiliza un metod para
codigo http reservado parsa usos permanente. Si hay alguna código HTTP cuando el recurso
obtener el recurso que no es
futuros posibilidad de que esta ausencia solicitado está bloqueado.
aceptable por el servidor.
sea temporal, se debe utilizar el
código HTTP 404.

404 Not found: El recurso 414 Request-URI Too Long: La


411 Length Required: El servidor
403 Forbidden :La peticion que solicitado el navegador no se URL que se corresponde con la
devuelve este código HTTP
realiza el navegador es correcta , encuentra o está disponible en el petición realiza es demasiado
cuando la petición no incluye la
pero se ha denegado el acceso al servidor. No es posible detectar larga para ser procesada. Esto
cabecera Content-Length
reucrso solicitado. si esta ausencia es temproal o ocurre cuando una dirección tiene
adecuada.
permanente. muchos parámetros.
CÓDIGOS DE ESTADO HTTP 5XX
509 Bandwidth Limit Exceeded: Es
500 Internal Server Error: No se 505 HTTP Version Not Supported: El
un código HTTP muy utilizado en
puede completar la petición, ya que servidor no es compatible con la
cPanel y se muestra cuando se ha
se ha producido un error inesperado versión del protocolo HTTP utilizada
alcanzado el límite de ancho de banda
en el navegador. en la petición del navegador.
y no se puede procesar la petición.

504 Gateway Timeout: El servidor no


puede responder con la petición del
501 Not implemented: El servidor no 510 Not Extended: Este código se
navegador, ya que este servidor está
soporta alguna funcionalidad muestra cuando es necesario añadir
actuando como proxy o gateway, o
necesaria para responder a la más extensiones al servidor para que
tiene instalado un proxy inverso y se
solicitud que realiza el navegador. pueda procesar la petición.
ha agotado el tiempo de respuesta de
dicho servidor.

502 Bad Gateway: El servidor no


puede responder con la petición del 503 Service Unavailable: El servidor
511 Network Authentification
navegador, ya que este servidor está no puede responder a la petición del
Required: El navegador debe
actuando como proxy o gateway, o navegador porque está saturado o se
autenticarse para poder cumplir las
tiene instalado un proxy inverso y ha están realizando tareas de
peticiones.
recibido una respuesta no válida mantenimiento en el mismo.
desde dicho servidor.
La programacion orientada a objetos es un enfoque de
programacion que se basa en la creacion y manipulacion de
objetos.
Los objetos tienen atributos que representan
característica,métodos que definen acciones que se pueden
POO realizar.
La POO organiza el código de manera modular al combinar
datos y comportamientos en objetos, lo que facilita la
creación,mantenimiento y reutilización de código en el
desarrollo de software.
JAVA

Java es un lenguaje orientado a


objetos credo por Sun
Microsystems en 1995.
Se utiliza para codificar aplicaciones
multiplataforma,es rapido, seguro y
confiable.Es un lenguaje de alto
nivel.
COMO FUNCIONA JAVA

Actua como puente entre el backend y el frontend.

Utiliza el java virtual machine como capa de abstración adicional entre la plataforma de java y el hardware
de la máquina subyacente.

El código fuente de java solo puede ejecutarse en aquellas máquinas en las que se haya instalado jvm.
CLASES

En java la clase es un plano o un modelo que define la


estructura y comportamiento de los objetos que se pueden
crear a partir de ella.
Ejemplo:
Imagina que estas desarrollando un videojuego de carreras
de coches,este juego tiene diferentes tipos de coches , como
deportivos, todoterrenos y coches de rally. Cada coche tiene
ciertas características y habilidades característica únicas.
En java puedes utilizar la clase coches para representarlos.
Basandonos en esto Java sería el plano para crear un coche
en tu juego. La clase nos servirá para definir las
características del mismo (como el modelo, la velocidad
maxima,el motor) y que puede hacer (acelerar,frenar,girar).
Atributos
Las clases pueden tener atributos,lo que conocemos como
variables de instancia,que también son las caraterísticas o
propiedades del objeto.
Métodos
Las clases contienen métodos que representan el
comportamiento del objeto. Los métodos son funciones que
pueden realizar acciones y manipular los atributos de la clase.
CONCEPTOS
Interfaces
FUNDAMENTALES Una interfaz es una plantilla o contrato para la construccion
DE LAS CLASES de clases que se debe cumplir. Se compone de un conjunto
de declaraciones cabeceras de metodos que especifican un
protocólo para una o varias clases.
Constructores
Las clases pueden tener constructores que son métodos especiales utilizados para inicializar objetos cuando se crean. Los
contructores tienen el mismo nombre que la clase y pueden tener diferentes parámetros para configurar el estado inicial del
objeto.
Encapsulamiento
El encapsulamiento es un principio de la poo que se refiere a la ocultación de los detalles de implementación de una clase y la
exposición controlada de sus atributos y métodos. En java se utilizan los modificadores de acceso como private,protected,public
para controlar los accesos a los miembros de una clase.
Herencia
Las clases pueden heredar atributos y métodos de otras clases. La herencia permite la creación de jerarquías de clases, donde una
clase (subclase o clase derivada) puede extender o heredar características de otra clase (superclase o clase base)
Instanciación
Para utilizar una clase primero debes crear una instacia y u objeto de una clase,puedes hacerlo utilizando el operador new
seguido del nombre de la clase y los argumentos necesarios para el constructor si lo tiene.
Es una biblioteca para Java que nos ofrece bastantes
funcionalidades. Para ello tiene que que estar conectado a
nuestro compilador, ya que su objetivo es facilitarnos el
desarrollo de nuestro código evitándonos tener que escribir
ciertos métodos, que van a ser repetitivos y que realmente
LOMBOK tampoco aportan lógica al negocio.
Para utilizar lombok debe estar integrado con el propio IDE,
asi tendra acceso al entorno de desarrollo y
compilación,porque va a generar una serie de métodos.
Ventajas de Lombok

Elimina código Inyecta código Permite


repetitivo y facilita sobre el codigo focalizarse en la
generar código. desarrollado. lógica de negocio.
Un microservicio es un enfoque
arquitectónico y organizativo para el
desarrollo de software, donde está
compuesto por pequeños servicios
indepedientes que se comunican a través de
API bien definidas. Los propietarios de estos
servicios son equipos pequeños
independientes.

MICROSERVICIO Las arquitecturas de microservicios hacen


que las aplicaciones sean más fáciles de
escalar y más rápidas de desarrollar.
Esto permite la innovación y acelera el
tiempo de comercialización de las nuevas
características.
ARQUITECTURA MONILITICA VS
ARQUITECTURA DE MICROSERVICIO
La arquitectura monolítica, todos los procesos están
conectados estrechamente asociados y se ejecutan como
un solo servicio.
Un proceso es dependiente de otro.
Se debe escalar toda la arquitectura.
Escalar es más complejo.
La arquitectura de microservicio los procesos no están
conectados unos con otros.
Es fácil de escalar.
Se crea con componentes independientes que
ejecutan cada proceso de la aplicación como un
servicio.
ESTRUCTURA DE PAQUETES

La estructura de paquetes puede variar según las necesidades


específicas del proyecto, pero generalmente se organiza de manera
que refleje el modularidad y la independencia entre los microservicios.
Aprovechando esto podemos crear los paquetes para cada artefacto de
este modo.
• Paquete controller para todos los endpoints que tenga nuestra
aplicación.
• Paquete service para agregar alli las clases que respondan a la
funcionalidad y lógica.
• Paquete model para las representaciones de nuestro modelo de datos
(entidades).
• Paquete repository para las clases que establecen la comunicación con
la base de datos.
CONFIGURACIONES
Un paquete que contiene la configuración
específica del microservicio, como archivos de
estructura, constantes y otros recursos de
configuración.
Ejemplo: config, constants.
ENTIDADES
Paquete que contiene las entidades o modelos
específicos del dominio.
Estos modelos representan la estructura de
datos del microservicio.
Ejemplo: models, entities.
DTO
Un DTO es una clase o estructura de datos simple
que contiene campos para almacenar datos, pero
generalmente no tiene lógica de negocio. Su
propósito principal es transferir datos de un lugar a
otro de manera eficiente y estructurada. En el
contexto de acceso a datos, podrías utilizar DTOs
para transmitir resultados de consultas de bases de
datos o para enviar datos desde el cliente al servidor
y viceversa.
REPOSITORIOS
Se utiliza para abstraer y encapsular el acceso a la capa de
almacenamiento de datos. Un Repositorio actúa como una
interfaz entre el código de la aplicación y la capa de
persistencia (como bases de datos), proporcionando métodos
para realizar operaciones CRUD (Crear, Leer, Actualizar,
Eliminar) en los datos.
En spring boot se utiliza con Spring Data JPA para simplificar el
acceso a bases de datos relacionales. Spring Data JPA
proporciona una interfaz de repositorio que puede extenderse
para realizar operaciones CRUD (Crear, Leer, Actualizar,
Eliminar) en las entidades del dominio. Esto se hace a través
de consultas de métodos que Spring Data JPA interpreta
automáticamente.
Un repositorio de acceso a datos es responsable de interactuar
con la base de datos, y su implementación concreta puede
variar según el tipo de base de datos que se esté utilizando
(por ejemplo, MySQL, MongoDB, etc.).
SERVICE
En el contexto de desarrollo de software, el término "service"
(servicio) se utiliza para referirse a componentes que
encapsulan lógica de negocio y proporcionan funcionalidades
específicas dentro de una aplicación. Los servicios son una
parte fundamental de la arquitectura de software y pueden
abordar una variedad de responsabilidades. Aquí hay una
descripción general de lo que implica un servicio en el
desarrollo de software

En Spring Boot, los servicios son componentes que


encapsulan la lógica de negocio de una aplicación. Estos
servicios son típicamente gestionados por el contenedor de
IoC (Inversión de Control) de Spring y se pueden anotar con
@Service.
CONTROLLER
En el desarrollo de aplicaciones Spring Boot, los
controladores (controllers) son componentes encargados
de gestionar las solicitudes HTTP y de proporcionar una
interfaz entre el cliente y el resto de la aplicación. Están
etiquetados con @Controller o @RestController y se
encargan de manejar las solicitudes entrantes, invocar la
lógica de negocio correspondiente y devolver una
respuesta al cliente, generalmente en formato JSON o
HTML.

En Spring Boot, puedes configurar la conexión a una base
de datos de varias maneras, pero una de las formas más
comunes es utilizando Spring Data JPA en combinación
con una base de datos relacional. Aquí hay una guía paso
a paso para configurar la conexión a una base de datos en
Spring Boot.
Agregar Dependencias
en tu archivo pom.xml (si estás utilizando Maven) o
build.gradle (si estás utilizando Gradle).
Configurar Propiedades de la Base de Datos

CONEXIÓN A BASE En tu archivo application.properties o application.yml ,


configura las propiedades de la base de datos, como la
URL, el nombre de usuario y la contraseña.
DE DATOS Annotar la Clase Principal con
@SpringBootApplication: Asegúrate de que la clase
principal de tu aplicación esté anotada con
@SpringBootApplication . Esto activará la configuración
automática de Spring Boot.
rear Entidades y Repositorios: Define tus entidades JPA
(clases que representan las tablas de la base de datos) y
repositorios (interfaces que extienden JpaRepository para
interactuar con la base de datos).
Usar Repositorios en Servicios y Controladores:
Finalmente, puedes utilizar tus repositorios en servicios y
controladores para interactuar con la base de datos.
Mongodb
Estos son los pasos básicos para configurar la conexión a MongoDB en una aplicación Spring Boot.
Puedes personalizar la configuración según las necesidades específicas de tu aplicación y la versión de
Spring Boot que estás utilizando.

• Agregar
Dependencias:
Asegúrate de tener la
dependencia necesaria
para MongoDB en tu
archivo pom.xml (si
estás utilizando Maven)
o build.gradle (si estás
utilizando Gradle):
Configurar Propiedades
de MongoDB
En tu archivo
application.properties o
application.yml, configura
las propiedades de
conexión a MongoDB:
Asegúrate de reemplazar
nombre_de_tu_base_de_datos con el
nombre deseado para tu base de
datos.
• Annotar la Clase
Principal con
@SpringBootApplication
:
Asegúrate de que la clase
principal de tu aplicación
esté anotada con
@SpringBootApplication.
Esto activará la configuración
automática de Spring Boot.

Crear Entidades y
Repositorios para MongoDB
Define tus entidades y
repositorios para MongoDB. En
lugar de usar JPA, usarás
anotaciones de MongoDB para
definir tus entidades y el
repositorio de MongoDB.
Usar Repositorios en Servicios
y Controladores
Puedes utilizar tus repositorios
de MongoDB en servicios y
controladores de la misma
manera que lo harías con JPA.
Aquí hay un ejemplo básico:
PostgreSQL
Si deseas configurar la conexión a PostgreSQL en una aplicación
Spring Boot, los pasos son bastante similares a los que se
mencionaron previamente para una base de datos relacional, pero
debes ajustar algunas propiedades específicas de PostgreSQL.

Agregar Dependencias:
Asegúrate de tener las
dependencias necesarias
en tu archivo pom.xml (si
estás utilizando Maven) o
build.gradle (si estás
utilizando Gradle). Para
PostgreSQL, puedes
agregar las siguientes
dependencias:
Configurar Propiedades de PostgreSQL: En tu
archivo application.properties o application.yml,
configura las propiedades de conexión a PostgreSQL:
Annotar la Clase
Principal con
@SpringBootApplicatio
n: Asegúrate de que la
clase principal de tu
aplicación esté anotada
con
@SpringBootApplication.
Esto activará la
configuración automática
de Spring Boot.
Crear Entidades y Repositorios: Define tus entidades JPA
(clases que representan las tablas de la base de datos) y
repositorios (interfaces que extienden JpaRepository
para interactuar con la base de datos).
Usar Repositorios en Servicios y
Controladores: Puedes utilizar tus
repositorios en servicios y
controladores de la misma manera
que lo harías con JPA.
Jpa repository

Spring Data JPA proporciona una interfaz


llamada JpaRepository que simplifica la
interacción con la base de datos cuando se
utiliza la tecnología JPA (Java Persistence
API). Esta interfaz proporciona métodos
CRUD (Crear, Leer, Actualizar, Eliminar)
comunes, y también permite definir
consultas personalizadas mediante
convenciones de nombres de método o
utilizando la anotación @Query.
continuación, se presenta un ejemplo básico
de cómo usar JpaRepository en Spring Boot:
Cuando hacemos uso de JPA a través
de Spring Data, este nos envuelve y
elimina el boilerplate de la gestión y
creación de queries a través de un
cómodo DSL o JPQL.
Por defecto, al añadir la anotación @Query
en una sentencia en Spring, esta se va a
transformar directamente en el lenguaje JPQL
Query nativo (Java Persistence Query Language), el cual
esta inspirado en SQL.
Pero cuando queremos crear alguna query
más compleja o que no podemos realizar con
JPQL, hacemos uso de SQL para crear una
query nativa.
¿Cómo crear una Query Nativa con Spring Data?
Para crear una query nativa en Spring, tenemos que realizar tres pasos:
Añadir la anotación @Query
Añadir el atributo nativeQuery a true.
Definir la sentencia SQL
Crear el Repositorio: Crea la
interfaz del repositorio que extienda
JpaRepository y agrega el método de
consulta nativa utilizando la
anotación @Query:
Limitaciones en el uso de Queries Nativas en Spring Data
Al hacer uso de Queries nativas tenemos que tener en cuenta las siguientes acciones que nos
van a limitar:
Spring Data no soporta ordenaciones dinámicas cuando se realiza una query nativa.
Al hacer uso de una Query nativa nos tenemos que asegurar que nuestro motor de
BBDD es capaz de procesar esa query.
La paginación no es directa, sino que tienes que además tenemos que hacer una
countQuery para obtener el número de registros.
Una proyección es una forma de
especificar qué campos de una entidad
desea recuperar de la base de datos.
Spring Data JPA admite dos tipos de
proyecciones:
Proyecciones Proyecciones basadas en interfaz
Proyecciones dinámicas
Proyecciones basadas en interfaz
Con las proyecciones basadas en interfaz, crea
una interfaz que define los campos que desea
recuperar y Spring Data JPA genera una
implementación de esa interfaz en tiempo de
ejecución. Esta es la forma recomendada de
usar proyecciones, ya que le permite aprovechar
las características de seguridad de tipo y Aquí, hemos definido una interfaz UserProjection que
finalización de código de su IDE. declara métodos para los atributos que queremos
proyectar.
Para usar proyecciones basadas en interfaz,
primero debe crear una interfaz que defina los
campos que desea recuperar:
Actualiza el repositorio para usar la proyección:
En el repositorio, hemos agregado un método que devuelve una lista de UserProjection.
Spring Data JPA generará la consulta adecuada para proyectar los resultados en la
interfaz UserProjection.
• Usa la proyección en un servicio o
controlador:
Ahora, cuando llamas a getAllUsers en tu
servicio, obtienes una lista de
UserProjection en lugar de la entidad User
completa.
• Proyecciones dinámicas
Con proyecciones dinámicas, puede especificar los campos que desea
recuperar como una cadena. Esto es menos seguro para tipos que las
proyecciones basadas en interfaz, pero puede ser útil si desea recuperar un
campo que no forma parte de su modelo de entidad.
Para usar proyecciones dinámicas, primero debe crear una clase que defina
los campos que desea recuperar.
Define una clase de
proyección:
•Actualiza el repositorio y servicio:
•Spring Data JPA Projections permiten seleccionar un
subconjunto específico de atributos de una entidad o
incluso combinar atributos de varias entidades en un
resultado personalizado. Esto es útil cuando solo
necesitas recuperar y mostrar ciertos campos de tus
entidades en lugar de toda la entidad. Puedes utilizar
proyecciones en combinación con las interfaces o clases
de proyección.
CRUD (Create, Read, Update, Delete) es un
acrónimo para las maneras en las que se
puede operar sobre información almacenada.
Es un nemónico para las cuatro funciones del
almacenamiento persistente.
CRUD usualmente se refiere a operaciones
CRUD llevadas a cabo en una base de datos o un
almácen de datos, pero también pude aplicar
a funciones de un nivel superior de una
aplicación como soft deletes donde la
información no es realmente eliminada, sino
es marcada como eliminada a tráves de un
estatus.
Esta fase se utiliza para crear un nuevo
registro en la base. Para implementar la
operación «Crear», es necesario proporcionar
un formulario o una interfaz donde el usuario
pueda ingresar los datos para el nuevo
CREATE registro. Después de que el usuario envía los
datos, se debe realizar una validación de los
mismos y luego insertarlos en la base o en el
sistema de almacenamiento.
Esta fase se utiliza para leer los datos de la
base y mostrarlos al usuario. Para
implementar la operación «Leer», se debe
proporcionar una interfaz que permita al
usuario buscar y recuperar los registros
existentes.
READ Esto puede lograrse mediante el uso de filtros
de búsqueda y una lista de resultados. Cuando
el usuario hace clic en un registro, se debe
mostrar su información completa.
Esta fase se utiliza para actualizar los datos
existentes en la base de datos. Para
implementar la operación «Actualizar», es
necesario proporcionar una interfaz para que
el usuario pueda modificar los datos de un
UPDATE registro existente. Una vez que el usuario
envía los datos actualizados, debe realizarse
una validación de los mismos y luego
actualizar el registro correspondiente en la
base o en el sistema de almacenamiento.
Esta fase se utiliza para eliminar un registro
existente. Para implementar la operación
«Eliminar», se debe proporcionar una
interfaz que permita al usuario
seleccionar un registro existente y
DELETE confirmar su eliminación.
Después de la confirmación, se debe borrar el
registro correspondiente de la base o sistema.
Swagger es una herramienta que
simplifica la documentación y la
interacción con las API REST. En Spring
Boot, puedes integrar Swagger
fácilmente con la ayuda de la biblioteca
springfox. A continuación, te proporciono
una guía paso a paso para configurar
Swagger en tu aplicación Spring Boot.
SWAGGER Spring Boot cuenta con la librería de Swagger
que permite analizar todo el proyecto y auto
documentar todos los servicios REST que
encuentre de forma automática. De esta
forma, nos ahorramos una gran cantidad de
trabajo de documentación.
La creación de una API en Spring Boot generalmente implica
definir controladores, servicios y repositorios, y configurar la
estructura de tu aplicación para manejar las solicitudes HTTP.
A continuación, te proporcionaré un ejemplo simple de cómo
puedes crear una API REST básica en Spring Boot.
Requestbody
El RequestBody en Spring Boot se utiliza para recibir datos de
solicitud (como JSON) y convertirlos en objetos Java. Esto es
comúnmente utilizado en operaciones POST y PUT para enviar
datos al servidor. A continuación, te mostraré cómo puedes
manejar el RequestBody en un controlador Spring Boot.

CREACION DE API Path params


Los parámetros de ruta (path parameters) en Spring Boot son
partes de la URL que se utilizan para proporcionar datos
específicos en la solicitud. Pueden estar integrados en la URL y
se extraen mediante anotaciones en los controladores. A
continuación, te mostraré cómo puedes utilizar parámetros de
ruta en un controlador Spring Boot.
Query params
Los parámetros de consulta (query parameters) en Spring Boot
son una forma de proporcionar datos adicionales en una
solicitud HTTP. A diferencia de los parámetros de ruta que
están integrados directamente en la URL, los parámetros de
consulta se especifican después del signo de interrogación (?) y
se pueden utilizar para filtrar o ajustar los resultados de una
solicitud. A continuación, te mostraré cómo puedes manejar
parámetros de consulta en un controlador Spring Boot.
En Microservicios, Service Discovery nos ayuda al
proporcionar una base de datos de instancias de
servicios disponibles para que los servicios puedan
descubrirse, registrarse y darse de baja según el
uso. Para obtener una explicación detallada del
descubrimiento de servicios, consulte este artículo
Descubrimiento de servicios y registro de servicios en
microservicios. En este artículo, vamos a desarrollar
Service Discovery con la ayuda de Spring Cloud .

DISCOVERY El descubrimiento de servicios, también


conocido como Service Discovery, es un
componente clave en arquitecturas de
microservicios. Permite que los diferentes
servicios en una aplicación distribuida
encuentren y se comuniquen entre sí de manera
dinámica. En el contexto de Spring Boot, Eureka
es una herramienta comúnmente utilizada para
implementar el descubrimiento de servicios.
Configuración del Servidor Eureka:
• Agregar Dependencias: Agrega las dependencias necesarias en tu archivo
pom.xml (si usas Maven) o build.gradle (si usas Gradle).
• Annotate la Aplicación Principal: En la clase principal de tu aplicación Spring
Boot, anota la clase con @EnableEurekaServer para habilitar Eureka como servidor
de descubrimiento
Configuración del Cliente Eureka (para otros servicios)
Agregar Dependencias: En el pom.xml o build.gradle del servicio que actuará como
cliente de Eureka, agrega la siguiente dependencia
Configuración de la Aplicación: En el archivo de configuración de la aplicación
(por ejemplo, application.yml), especifica el nombre de la aplicación y la URL del
servidor Eureka.
Annotate la Aplicación Principal: En la clase principal de tu aplicación Spring
Boot, anota la clase con @EnableDiscoveryClient para habilitar el descubrimiento de
servicios
Inicia el servidor Eureka ejecutando la
aplicación EurekaServerApplication.
Inicia tu servicio cliente (por ejemplo,
MyServiceApplication).

Ejecución Accede a la consola de Eureka en


http://localhost:8761 para verificar que tu
servicio esté registrado.

También podría gustarte