我已经开始在micronaut中制作一个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中,唯一标识请求的最佳方法是什么?
非常感谢。我到处搜寻了答案,但找不到有用的东西。