В моем серверном приложении я хочу использовать какой-нибудь сторонний API, используя клиент REST MicroProfile. Для этого мне нужно отправить 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
}