Я начал делать шлюз API в микроавтобусе. У меня уже есть некоторые конечные точки, но пришло время прилично регистрировать каждый запрос. Я пришел из узла, и в моей голове должно быть довольно просто поместить x-request-id в заголовок каждого запроса.
Мой код, чтобы уточнить, что я имею в виду:
@Client(value="${services.users.url}")
public interface UserClient extends BaseClient{
@Get("/users/{userId}")
@Header(name = "x-request-id", value = "${random.uuid}")
Single<Object> getUserById(@PathVariable int userId);
}
Однако, похоже Java принимает только постоянные значения времени компиляции для аннотаций:
ERROR i.m.r.intercept.RecoveryInterceptor - Type [gateway.users.clients.UserClient$Intercepted] executed with error: Could not resolve placeholder ${random.uuid}
io.micronaut.context.exceptions.ConfigurationException: Could not resolve placeholder ${random.uuid}
Я подтвердил, что невозможно ставить непостоянное значение в любой аннотации, что приводит меня к моему последнему вопросу:
Какой лучший способ в micronaut / Java уникально идентифицировать запрос?
Заранее большое спасибо. Я искал ответ везде, где я знаю, но я не могу найти ничего полезного.