Я хочу создать клиента Feign, который всегда использует один и тот же набор заголовков, но мне также нужно добавить динамический c accessToken
заголовок поверх предопределенных.
То, что у меня сейчас есть, таково.
interface ApiClient {
@RequestLine("GET /accounts")
fun fetchAccounts(
@HeaderMap headerMap: Map<String, Any>
): AccountsResponse
}
Это означает, что я должен всегда передавать все заголовки. Я делаю это так.
private fun createHeaderMap(accessToken: String) =
mapOf(
"Authorization" to "Bearer $accessToken",
"Cache-Control" to "no-cache",
"Content-Type" to MediaTypes.APPLICATION_JSON
)
Таким образом, звонок клиенту выглядит следующим образом.
apiClient.fetchAccounts(
headerMap = createHeaderMap(accessToken)
)
Вместо этого я хотел бы, чтобы only pass один изменяемый аргумент, accessToken
, и остальные из них должны быть как-то уже предопределены. Вопрос в том, КАК?
Итак, желаемый клиентский вызов будет.
apiClient.fetchAccounts(accessToken)
Таким образом, я могу динамически передавать accessToken
, но у меня все еще есть другие заголовки stati c включены в вызов. Как мне это сделать с Feign?