Recurso [Java] Arquetipo para proyecto Spring basado en tipos genéricos.

OP

RuDaHeee

Life before death~
Supporter
Mensajes
936
Reacciones
625
Puntos
582
Ubicación
Sevilla, España
¡Buenas!

Este aporte contiene un proyecto que tiene una estructura basada en tipos genéricos de Java junto a Spring (Boot, Web y JPA) para crear una API Rest muy rápidamente basada en clases vacías con lógica implementada por defecto.

Si tenéis problemas o dudas a la hora de usarlo, lo podéis comentar en el tema y os respondo lo antes posible.


Uso del API Rest

las rutas de la API Rest siempre serán:

ruta: puerto/<ruta-controlador>/<metodo-mapping>
Para una entidad Example los endpoints del API Rest serian los siguientes:

  • GET localhost:8080/example/get/{id} - Obtener una entidad de ejemplo por id.
  • GET localhost:8080/example/get/all - Obtener todas las entidades de ejemplo.
  • POST localhost:8080/example/save: guarda la entidad de ejemplo del cuerpo json.
  • POST localhost:8080/example/save/all: guarda todas las entidades de ejemplo del cuerpo json.
  • PUT localhost:8080/example/save: modifica la entidad de ejemplo del cuerpo json.
  • PUT localhost:8080/example/save/all: modifica todas las entidades de ejemplo del cuerpo json.
  • DELETE localhost:8080/example/delete: elimina la entidad de ejemplo del cuerpo json.
  • DELETE localhost:8080/example/delete/{id} - eliminar entidad de ejemplo por id.


Código del proyecto

En este caso el código es realmente largo. por tanto os dejo el código en el propio enlace de descarga y dejare aquí unas anotaciones de como empezar a usar el arquetipo.

Para empezar a usar el proyecto debemos realizar los siguientes pasos:
  1. Debes clonar el proyecto.
  2. Agregue sus parámetros de conexión en el archivo application.properties.
  3. Luego de esto debemos crear una serie de clases para cada entidad para la cual queremos crear un CRUD:
    • Una entidad y una DTO
    • Un convertidor que extiende AbstractDTOConverter (implementando los métodos que faltan) anotado con @Service
    • Un repositorio que extiende JPARepository, anotado con @Repository y deja la clase en blanco
    • Un servicio que extiende AbstractCRUDService, anotado con @Service y deja la clase en blanco
    • Un controlador que extiende AbstractController, anotado con @RestController y @RequestMapping(path = "/your/path"). deja la clase en blanco también.
  4. ¡Ejecuta el proyecto!

Descarga del script

El repositorio donde está subido el código y desde donde podéis descargarlo es este: Archetype-SpringProjectWithGenerics
 
Arriba Pie