Добавьте ведение журнала ко всем вызовам RestClient в Quarkus

#java #logging #quarkus #quarkus-rest-client

Вопрос:

У меня реализован минимальный рестклиент Quarkus, очень похожий на пример в документации (https://quarkus.io/guides/rest-client):

 package org.acme.rest.client;

import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import org.jboss.resteasy.annotations.jaxrs.PathParam;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.Set;

@Path("/v2")
@RegisterRestClient
public interface CountriesService {

    @GET
    @Path("/name/{name}")
    Set<Country> getByName(@PathParam String name);
}
 

Как я могу включить ведение журнала для всех звонков клиенту, указанных выше?
Мне нужно отобразить полный URI, параметры запроса и код ответа HTTP, даже если более поздний отображается в отдельной строке.

Ответ №1:

Используйте ClientResponseFilter ; создайте конкретную реализацию этого интерфейса и проследите, что вы хотите.
Просто не забудьте зарегистрировать фильтр CountriesService с @RegisterProvider аннотацией.