API REST con Quarkus

¿Te gustaría aprender a usar Quarkus para poder realizar aplicaciones Java Cloud?
Tenemos el curso que necesitas. ¡Haz clic aquí!

Quarkus es un marco Java nativo de Kubernetes diseñado para GraalVM y HotSpot. El objetivo de Quarkus es hacer de Java una plataforma líder en Kubernetes y entornos sin servidor al tiempo que ofrece a los desarrolladores un modelo de programación imperativo y reactivo unificado para abordar de manera óptima una gama más amplia de arquitecturas de aplicaciones distribuidas

¿Por qué quarkus?

Siempre que alguien piensa en el desarrollo de Java. Piensan que la aplicación requerirá una gran cantidad de memoria y será difícil de desarrollar en comparación con sus contrapartes. Pero quarkus, vamos a desarrollar aplicaciones de alto rendimiento que ocupan muy poco espacio y es fácil trabajar con ellas gracias a características como la recarga en vivo. Además, la amplia gama de extensiones y bibliotecas proporcionadas por el equipo y la comunidad de quarkus hace que la creación de aplicaciones de quarkus sea mucho más fácil y divertida

por favor vaya a este enlace para más información: https://quarkus.io/

Obtén descuentos exclusivos de nuestros cursos en vivo en línea

Capacítate con los expertos

resumen:

menos uso de memoria
tiempo de inicio rápido
recarga en vivo fuera de la caja
utiliza las especificaciones estándar de java ee. así que si ya estás más familiarizado con Jakarta ee o incluso con Spring, estás listo para irte.
Quarkus no utiliza la API de reflexión.
construyamos una lista simple de TO DO endpoints
Para configurar el entorno de desarrollo
necesitará :

JDK 8 u 11 con JAVA_HOME configurado
GraalVM (si desea crear una imagen nativa)
Apache Maven o Gradle
IDE (prefiero intellij Idea)
Empezando
La forma más sencilla es ir a https://code.quarkus.io/ y descargar el archivo zip de la aplicación inicial con la configuración predeterminada y estas bibliotecas.

Implementación RestEasy de JAX-RS
RestEasy JsonB
Es su elección usar maven o gradle. Estaré usando gradle.

La estructura del proyecto se verá así:

  • El ExampleResource.java contiene el REST Endpoint.
  • La carpeta docker contiene dos archivos para crear la aplicación como contenedor. Dockerfile.jvm para ejecutar la aplicación en JVM y Dockerfile.native para crear una aplicación nativa.
  • La prueba y la prueba nativa para probar JVM y aplicaciones nativas
  • Los recursos estáticos se colocan dentro de la carpeta de recursos, como index.html.
  • application.properties es el archivo yaml utilizado para la configuración. p.ej. Definición de la fuente de datos y configuración de la base de datos.

Construyendo nuestra API ToDo

Para simplificar, no usaré la base de datos en este artículo y tal vez muestre cómo usarla en el próximo artículo.

Puede intentar ejecutar el proyecto inicial usando

Esto ejecutará la aplicación en modo de desarrollo que proporciona recarga en caliente. por lo que cualquier cambio en el código es visible al instante sin reiniciar la aplicación. Continúe y pruebe esto, simplemente cambiando el texto de la declaración de devolución.

El proyecto inicial contiene ExampleResource, un punto final de saludo simple que devuelve hola. Reemplace esto con ToDoResource y agregue este código.

ToDoResource.java

Esto contiene 6 EndPoints para operaciones CRUD básicas:

GET /api/todo devuelve todas las tareas
GET /api/todo/{id} devuelve la tarea con la identificación dada
POST /api/todo con el cuerpo del objeto ToDo json para crear una nueva tarea
POST /api/todo con el cuerpo de la cadena de tareas para crear una nueva tarea
PATCH /api/todo/status/{id} para marcar la tarea completada o no completada
DELETE /api/todo/{id} elimina la tarea con la identificación dada
La anotación @Path especifica uri para el punto final. Se utiliza para definir el uri base cuando se declara en la parte superior del recurso y especifica el uri para una API específica si se especifica sobre la función. p.ej. api/todo en este caso es base uri y status/{id} es uri de changeStatus API.

La anotación @Produces indica qué tipo de resultado sirve la API. por ej. JSON, texto sin formato o HTML.

La anotación @Consumes indica qué tipo de cuerpo consume la API. por ej. JSON, texto sin formato o HTML.

@Inject Annotation se usa para inyectar Instanse de ToDoService usando CDI. Esto nos permite usar solo la dependencia/objeto que necesitamos sin preocuparnos por su creación y ciclo de vida, ya que es administrado por el contexto y el sistema de inyección de dependencia.

Tareas pendientes.java

Este es nuestro POJO con constructores para inicializar objetos.

TodoService.java

Esta clase contiene lógica de aplicación. Es ApplicationScoped, lo que significa que solo se crea una instancia de esta clase durante la vida útil de la aplicación y la misma instancia se inyecta y se reutiliza donde lo requiera el sistema CDI.

Ahora puede ejecutar la aplicación usando el mismo comando mencionado anteriormente. La salida en la terminal se verá así.

Si observa detenidamente, verá que también indica todas las funciones instaladas, como cdi, resteasy, resteasy-jsonb en la tercera línea después del banner de quarkus.

Construyendo el ejecutable nativo

Use el siguiente comando para generar un ejecutable nativo

La compilación producirá target/{package_name}-1.0-SNAPSHOT-runner. Puede ejecutarlo usando: ./target/{package_name}-1.0-SNAPSHOT-runner en Linux.

Te invitamos a ver todos los artículos que tenemos para ti, coméntanos que tal te pareció este articulo y compártelo con más personas.

¿Te gustaría aprender a usar Quarkus para poder realizar aplicaciones Java Cloud?
Tenemos el curso que necesitas. ¡Haz clic aquí!

About Author

Janeth Cerpa

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios

Domina Quarkus con la ayuda de instructores capacitados que te apoyaran en todo momento

X
0
¿Te gusta este articulo? por favor comentax