Quarkus
Quarkus es un framework para fabricar aplicaciones web de grado empresarial en Java.
Está basado en Jakarta EE, pero concretamente siguiendo los principios de la plataforma Microprofile, lo que significa que está especializado en la creación de microservicios, que se caracterizan por requerir ser rápidos y ligeros para poder correr orquestados en cloud pública. Eso significa que Quarkus, si bien puede usarse para hacer aplicaciones más tradicionales con vistas HTML, está principalmente pensado para ser usado en entornos donde se trabaja con APIs REST, websockets, OIDC... Con características como el despliegues a Kubernetes, la recopilación de métricas o la compatibilidad con entornos serverless, esta es una alternativa perfecta a Spring si quieres fabricar microservicios fáciles de desarrollar y gestionar.
-
Lección 🔥 PopularJsonIgnore, JsonProperty y JsonAlias
Si queremos modificar la forma en la que se serializa a JSON una entidad, tenemos las anotaciones JsonIgnore, JsonProperty y JsonAlias para influir en la forma en la que Jackson serializa nuestra entidad, para ocultar campos o renombrarlos. -
LecciónAplicar filtros dinámicos
Filter y FilterDef son dos anotaciones de Hibernate ORM (lo que hay por debajo de Panache) usadas para crear filtros dinámicos con nombre. Si queremos que nuestro PanacheQuery pueda recibir una cadena de filtros, podemos usarlos para aplicar sucesivas cadenas de criterios para reducir los resultados devueltos por el repositorio. -
Lección 📈 En tendenciaPaginación de resultados
PanacheQuery nos permite cuidar más la query que queremos que se mande a la base de datos, aprovechando el poder de Hibernate ORM, que es lo que lleva debajo. En este vídeo veremos cómo aplicar paginación a una query para poder ofrecer menos resultados por endpoint y así no someter... -
Lección 📈 En tendenciaFiltros y ordenación
Con el método find() podemos obtener listas de entidades donde aplicamos criterios de filtro. En este vídeo presento cómo aplicar filtros usando HQL o bien de la forma más simple, pasándole directamente un campo y su valor esperado. También introduzco al uso de Sort para aplicar criterios de ordenación. -
LecciónModificar y borrar registros
Los repositorios y las entidades tienen más métodos, tanto para eliminar un registro como para recuperarlo. También es posible hacer modificaciones sobre una entidad si la volvemos a pasar al método persist() después de haberla recuperado previamente desde el propio repositorio. En este vídeo completo el CRUD. -
Lección 📈 En tendenciaActive Record con PanacheEntity
El patrón Active Record será conocido para gente que venga de frameworks como Django, Laravel o Ruby on Rails. En este caso, las clases de datos además de recordar los datos traídos o por enviar a base de datos, disponen de métodos que permiten interactuar con la base de datos.... -
Lección 📈 En tendenciaCrear una entidad y un repositorio
En este capítulo hacemos un recurso que interactúa con una base de datos. Para ello, será necesario antes mostrar cómo crear una entidad de JPA que podamos luego persistir a través de un PanacheRepository, que es la alternativa que ofrece Panache a tener que levantar manualmente un EntityManager como se... -
Lección 📈 En tendenciaConfigurar una base de datos
Quarkus tiene soporte para el Hibernate ORM, permitiendo persistir y recuperar información en una base de datos a través de una conexión JPA estandar. Sin embargo, Quarkus también trae una biblioteca llamada Panache que va a simplificar el acceso a base de datos mediante repositorios (al estilo Spring), e incluso... -
Lección 🔥 PopularExceptionMapper y tratamiento de errores
ExceptionMapper es una alternativa para el tratamiento de errores con el que podemos hacer que en caso de lanzarse una excepción por parte de alguno de los endpoints que hemos metido en nuestra API, se convierta en la respuesta correspondiente. Así podemos fabricar un conjunto de respuestas reusables asociadas a... -
Lección 🔥 PopularResponse y ResponseBuilder
Con Response y ResponseBuilder podemos fabricar respuestas con códigos de estado personalizados y agregando cabeceras de respuesta específicas. Es algo que querremos hacer cuando tengamos que entregar algo que no sea HTTP 200, como por ejemplo prevenir errores en nuestra aplicación.