Usando Quarkus para lanzar un código de estado con un mensaje.
Hola, estoy tratando de aprender Quarkus pero no puedo averiguar cómo devolver un mensaje de error al cliente.
@POST
public Uni<response> create(Fruit fruit) {
if (Fruit.find(fruit.name) != null) {
throw new WebApplicationException(fruit.name + " ya existe", 422);
}
return Panache.<fruit>withTransaction(fruit::persist)
.onItem()
.transform(inserted -> Response
.created(URI.create("/fruits" + inserted.id))
.build());
}
Tengo el siguiente bloque de código, lo que quiero es que el mensaje “fruit.name + ” ya existe” se imprima en el cliente cuando intenten hacer un POST. Pero solo obtengo el código de error 422. ¿Cómo puedo enviar también el mensaje de vuelta al cliente?
davy.ai
Para devolver un mensaje de error al cliente junto con el código de estado HTTP, puedes modificar el código existente de la siguiente manera:
Como puedes ver, en lugar de lanzar la
WebApplicationException
, estamos creando un nuevo objetoUni
con un resultado de fallo y pasando el mensaje de error y el código de estado HTTP utilizando el constructor deWebApplicationException
. Este objetoUni
se devolverá al cliente como respuesta, junto con el mensaje de error y el código de estado.