如何将动态 header 值传递给 Micronaut 声明式 HTTP 客户端?
How do I pass dynamic header values to a Micronaut declarative HTTP client?
我想利用 Micronaut 的 'Declarative HTTP Client' 功能。我很难理解如何传递动态 header 值,并且想知道这是否可能。考虑以下示例:
package com.example;
import io.micronaut.http.annotation.Header;
import io.micronaut.http.client.annotation.Client;
import java.util.ArrayList;
@Client("${my.api.host}")
@Header(name = "Auth-Header", value = "<This needs to be dynamic>")
public interface MyApiClient {
public ArrayList<Dog> getDogs();
}
如何使我的 header 值动态化 [non-static]?
声明式客户端中的动态 header 可以在方法参数级别定义。请参阅以下示例:
@Client("${my.api.host}")
interface LocalhostClient {
@Get
List<String> getDogs(@Header(name = "Authorization") String authorization);
}
然后您可以使用适当的 Authorization header 值调用客户端方法,如下所示:
var dogs = client.getDogs("Bearer some-token");
我想利用 Micronaut 的 'Declarative HTTP Client' 功能。我很难理解如何传递动态 header 值,并且想知道这是否可能。考虑以下示例:
package com.example;
import io.micronaut.http.annotation.Header;
import io.micronaut.http.client.annotation.Client;
import java.util.ArrayList;
@Client("${my.api.host}")
@Header(name = "Auth-Header", value = "<This needs to be dynamic>")
public interface MyApiClient {
public ArrayList<Dog> getDogs();
}
如何使我的 header 值动态化 [non-static]?
声明式客户端中的动态 header 可以在方法参数级别定义。请参阅以下示例:
@Client("${my.api.host}")
interface LocalhostClient {
@Get
List<String> getDogs(@Header(name = "Authorization") String authorization);
}
然后您可以使用适当的 Authorization header 值调用客户端方法,如下所示:
var dogs = client.getDogs("Bearer some-token");