Skip to content

Instantly share code, notes, and snippets.

@ThomasVitale
Created June 5, 2024 14:25
Show Gist options
  • Save ThomasVitale/20f4c9c2e1c86ca6eb7a2c1bde728820 to your computer and use it in GitHub Desktop.
Save ThomasVitale/20f4c9c2e1c86ca6eb7a2c1bde728820 to your computer and use it in GitHub Desktop.
private RestClient buildRestClient(OpenAiClientConfig clientConfig, RestClient.Builder restClientBuilder) {
var settings = new ClientHttpRequestFactorySettings(
clientConfig.connectTimeout(), clientConfig.readTimeout(), SslBundle.of(null));
var requestFactory = ClientHttpRequestFactories.get(settings);
Consumer<HttpHeaders> defaultHeaders = headers -> {
headers.setContentType(MediaType.APPLICATION_JSON);
if (StringUtils.hasText(clientConfig.apiKey())) {
headers.setBearerAuth(clientConfig.apiKey());
}
};
return restClientBuilder.requestFactory(requestFactory)
.baseUrl(clientConfig.baseUrl().toString())
.defaultHeaders(defaultHeaders)
.defaultStatusHandler(responseErrorHandler)
.requestInterceptors(interceptors -> {
if (clientConfig.logRequests() || clientConfig.logResponses()) {
interceptors
.add(new HttpLoggingInterceptor(clientConfig.logRequests(), clientConfig.logResponses()));
}
})
.build();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment