Chapter 16. Additional Quarkus Features

This chapter contains features of Quarkus that don’t fit into any other chapter. That, of course, doesn’t make them any less useful! In this chapter, you’ll learn about the following topics:

  • Quarkus’s templating solution, Qute

  • OpenAPI integration

  • Sending emails

  • Scheduling functions

  • Application data caching

16.1 Creating Templates with the Qute Template Engine

Problem

You want to create templates and render them with specific data.

Solution

Use the Qute template engine.

Qute is a templating engine designed specifically to meet the Quarkus needs of minimizing the usage of reflection and supporting the imperative and reactive style of coding.

Qute can be used as a standalone library (generating reports to disk or generating e-mail body messages) or together with JAX-RS to deliver HTML content.

To start using Qute with JAX-RS, add the resteasy-qute extension:

./mvnw quarkus:add-extension -Dextensions="quarkus-resteasy-qute"

By default, templates are stored at the src/main/resources/templates directory and its subdirectories.

The following might be a simple template as a plain-text file:

Hello {name}!

The template is a simple sentence parametrized with the name parameter.

To render the template with concrete data, you just need to inject the io.quarkus.qute.Template instance and provide the template parameters:

@Inject
io.quarkus.qute.Template hello;  

@GET
@Produces(MediaType.TEXT_PLAIN)
public TemplateInstance hello() { 

Get Quarkus Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.