Ir al contenido principal

Entradas

Mostrando las entradas de diciembre, 2024

Implementar SpringDoc OpenAPI |Swagger en Java Spring en 2 PASOS

 Implementar Swagger en Java Spring  Te ayudaré a crear una introducción atractiva para tu blog sobre la implementación de Swagger en Java Spring. En el dinámico mundo del desarrollo de APIs REST, la documentación clara y accesible se ha convertido en un elemento crucial para el éxito de cualquier proyecto. Swagger, también conocido como OpenAPI, se ha establecido como el estándar de facto para documentar APIs de manera elegante y eficiente. Cuando se combina con Spring Framework, uno de los frameworks más populares en el ecosistema Java, obtenemos una poderosa herramienta que no solo mejora la documentación de nuestras APIs, sino que también facilita enormemente su prueba y mantenimiento. En este artículo, exploraremos paso a paso cómo integrar Swagger en tus aplicaciones Java Spring, transformando la tediosa tarea de documentar APIs en un proceso fluido y automatizado. Ya seas un desarrollador experimentado buscando optimizar tu flujo de trabajo o estés comenzando tu viaje...

Inyección de dependencias en Java

 Inyección de dependencias en Java Consiste en pasar la dependencia en la clase que lo va a utilizar en lugar de crearla internamente dentro de esa clase esto con el fin de no acoplar la clase a la implementación que esta utilizando.  Inversión de control: es un framework quien toma control de los objetos. En este caso Spring. El cual se encarga de crear y administrar instancias de objetos que se conocen como builds o componentes. Entonces Spring usa la notación @Autowired para la inyección de dependencias. Por lo tanto en Spring cuando estamos usando nuestras interfaces en el repositorio correspondiente es necesario asignarles la notación que te mencioné: @Auatowired, de esta manera le damos el control para que cree esas instancias: @Autowired private ProductoCrudRepository productoCrudRepository ; @Autowired private ProductMapper mapper ; Asi nos evitamos crear objetos manualmente ya que es una mala práctica y estaríamos violando el principio de inyección de dependencias, s...

Patron Data Mapper ¿para que sirve? | Java Spring

Data Mapper Para entender mejor esto te sugiero que leas y entiendas por completo como funcionan las arquitecturas de programación:  Arquitectura Hexagonal en JAVA Spring Boot   Arquitectura Limpia explicado con patitos 🐤 Arquitectura N-Capas GUÍA COMPLETA .NET Core Data Mapper nos ayuda a convertir o traducir dos objetos que pueden hacer la misma labor. ¿Qué logramos con esto?  No se expone la BD a la API No tener campos innecesariso en la API Descooplar nuestra API a una base de datos puntual  No se mezcla idiomas en el dominio En el caso que se desee integrar una nueva base de datos con otros campos, pero que sea para el mismo proyecto, no es necesario cambiar todo el código, simplemente se crea otro traductor que sirva para traducir la nueva tabla al dominio Para usarlo necesitaremos MapStruct El cual es un generador de código.: MapStruct – Java bean mappings, the easy way! Luego vas a documentación y si usas gradle serían estas 2 lineas para importarlo a tu pro...

Java Spring | Al grano lo que necesitas para levantar un proyecto

 ¿Qué es Srping?  Es el framework mas popular de Java Es usado por Mercedes-Benz y Netflix en sistemas internas Posee una gran comunidad Es muy modular y flexible Aplicaciones web, reactivas y procesar grandes lotes de información con Batch.  En resumen para construir Spring tiene 4 proyectos: Spring Framework: Permite crear aplicaciones empresariales modernas. Spring Boot: Permite crear aplicaciones auto contenidas y autoconfigurables.  Sprint Data JPA: Gestiona e integra las BD.  Spring Security: Permite autenticación, autorización, evitar ataques, etc.  Usaremos lo siguiente para poder tener levantado un ambiente:  Para Postgress es importante mencionar que estaremos usando EDB:   EDB: Open-Source, Enterprise Postgres Database Management  

Spring Data | Conexión a BD Postgress SQL

  Spring Data NO es una implementacion de JPA , sino mas bien es un proyecto que usa JPA para ofrecer funcionalidaes extra en la gestion de tareas desde JAVA a las base de datos. Spring Data internamente tiene varios subproyectos, entre ellos: Spring Data JPA y Spring Data JDBC, para conectarnos a BD relacionales (SQL). Spring Data MongoDB y Spring Data Cassandra, son proyectos para conectarnos a BD no relacionales. La tarea principal de Spring Data es optimizar tareas repitivas. Spring data nos provee de respositorios sin codigo, nos permiten hacer todo tipo de operaciones en BD (CRUD) sin utilizar una linea de código. También nos provee de auditorías transparentes, por ello, posee un motor de auditorias que nos permite saber cuando se insertó un registro, cuando se borró, cuando se actualizo en la BD, etc. Implementación en el proyecto Market:  Maven Repository: Search/Browse/Explore Se busca en MAVEN el repositorio Spring Boot Starter Data JPA, se copia el group y el name e...

JPA | Framework ORM.

¿Qué es JPA? Jpa es una especificación de Java, standar, para un framework ORM. Quiere decir que son uan serie de reglas que Java define para que cualquier framework que quierea interactura con la BD de Java, tenga que seguir. Los frameworks mas populares de Java para este fin son: Hibernate TopLink EclipseLink ObjectDB Anotaciones JPA: JPA utiliza anotaciones para conectar clases a tablas de la BD y asi evitar hacerlo de manera nativa con SQL. @Entity. Indica a una clase de java que esta representando una tabla de nuestra BD. (La más importante) @Table. Recibe el nombre de la tabla a la cual esta mapeando la clase. @column. Se le pone a los atributos de la clase, no es obligatoria, se indica sólo cuando el nombre de la columna es diferente al nombre del atributo de la tabla. @id , @EmbededID. Es el atributo como clave primaria de la tabla dentro de la clase. @id se utiliza cuando es clave primaria sencilla y @EmbededID cuando es una clave primaria compuesta. @GeneratedValue. Permite g...

Arquitectura Hexagonal en JAVA Spring Boot

 Esta es la recomendación de estructura de un proyecto para hacer nuestras APIs siguendo la arquitectura N-Capas que te explique aquí también:  Arquitectura Limpia explicado con patitos 🐤 Es un diseño en capas que sigue el patrón de Arquitectura Hexagonal (también conocida como Puertos y Adaptadores): Capa de Dominio ( domain ) Contiene las clases de negocio puras como Product , Category Es el núcleo de la aplicación, independiente de frameworks Capa de Persistencia ( persistence ) entity : Contiene las entidades JPA ( Producto , Categoria , etc.) crud : Interfaces para operaciones básicas de base de datos mapper : Conversores entre entidades y objetos de dominio repository : Implementación concreta del acceso a datos Capa Web ( web.controller ) Controladores que manejan las peticiones HTTP Como HolaMundoController Servicios ( service ) Contiene la lógica de negocio Coordina entre los repositorios y el dominio

Archivo Application.properties en SPRING BOOT

  Guía Completa: Application.properties en Spring Boot El archivo application.properties es una pieza fundamental en aplicaciones Spring Boot, actuando como el centro de configuración para todo tu proyecto. En esta guía, exploraremos sus características principales y cómo aprovecharlo al máximo. ¿Qué es application.properties? Es un archivo de configuración que permite definir diferentes parámetros y valores para tu aplicación Spring Boot sin necesidad de modificar el código fuente. Se ubica en src/main/resources y Spring Boot lo lee automáticamente al iniciar. Configuraciones Esenciales Configuración del Servidor # Puerto del servidor server.port = 8080 # Contexto de la aplicación server.servlet.context-path = /miapp Conexión a Base de Datos # MySQL spring.datasource.url = jdbc:mysql://localhost:3306/mibasededatos spring.datasource.username = usuario spring.datasource.password = contraseña spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver JPA y Hibernat...

Arquitectura Limpia explicado con patitos 🐤

 Arquitectura Limpia explicada con patitos  🐤 🐤 🐤 Anteriormente te expliqué sobre la arquitectura N capas, pero si aún no te queda del todo claro, este post va a resumir de manera perfecta y muy simple como funciona esta arquitectura. ¡Ademas! he incluido un ejemplo con codigo de manera narrativa para que quede totalmente claro.  Recordemos sus capas y el flujo:  Repository (Repositorio): Es el que "habla" directamente con la base de datos Si necesitas SELECT, INSERT, UPDATE, DELETE -> el repositorio lo hace Su interfaz (IRepository) es como un "menú" que dice "estos son los métodos que puedes usar para la base de datos" Service (Servicio): Es el "cerebro" que tiene toda la lógica del negocio Usa el repositorio cuando necesita datos Su interfaz (IService) es como un "menú" para el controlador: "estas son las operaciones que puedes hacer". Puede usar varios repositorios si necesita combinar datos Model (Modelo): Es simple...

Arquitectura N-Capas GUÍA COMPLETA .NET Core

Entendiendo la Arquitectura Limpia (Clean Architecture) en .NET: Una Guía Completa La Arquitectura Limpia, también conocida como arquitectura N-Capas, es un patrón de diseño que nos ayuda a crear aplicaciones mantenibles, testables y escalables. En este artículo, exploraremos en detalle cómo implementar esta arquitectura en un proyecto .NET. Si quieres entenderlo más fácil y con código, te dejo este otro artículo:   Arquitectura Limpia explicado con patitos 🐤 ¿Qué es la Arquitectura Limpia? La Arquitectura Limpia es un conjunto de principios de diseño que nos ayuda a separar las responsabilidades en diferentes capas de nuestra aplicación. Cada capa tiene una responsabilidad específica y se comunica con las otras capas a través de interfaces bien definidas. Estructura del Proyecto Una típica estructura de proyecto en Arquitectura Limpia se ve así: ├── Controllers/ │   └── ProductController.cs ├── Domain/ │   ├── Models/ │   └── DTOs/ ├── Repository/ │...