В моем серверном приложении я хочу использовать сторонний API с помощью клиента MicroProfile REST. Для этого мне нужно отправить заголовок Authorization
с токеном на предъявителя.
Я не хочу всегда получать токен до того, как сделаю какой-либо вызов, поэтому мне нужен механизм, чтобы получать новый токен только в том случае, если токена еще нет или срок действия токена истек. Затем токен можно сохранить и использовать в каждом вызове до истечения срока его действия. Следующий вызов API, который вызовет HTTP 401 Unauthorized, должен привести к получению нового токена.
К сожалению, до сих пор мне не удалось найти никаких ресурсов о том, как использовать API-интерфейсы, защищенные OAuth, с помощью клиента MicroProfile REST. Я надеюсь, что кто-нибудь может дать мне какие-нибудь советы. Я использую Kotlin и Quarkus, но документация по Java тоже подойдет. Все помогает.
Вот мой довольно простой клиент:
@RegisterRestClient
@Produces(MediaType.APPLICATION_JSON)
interface SomeThirdPartyApiClient {
@POST
@Path("/some/random/url")
fun someRandomUrl(body: SomeJsonRequestObject, @HeaderParam("Authorization") bearer: String): SomeJsonResponseObject
}