Cliente HTTP configurável
Visão geral
O Rapid SDK utiliza um cliente HTTP subjacente para executar chamadas de API. Para dar aos desenvolvedores mais controle sobre o cliente HTTP, é fornecido um construtor que pode ser usado para passar seu próprio cliente HTTP para o SDK usar. Usando este construtor, você pode criar um cliente HTTP com suas próprias configurações e passá-lo para o SDK, ou até mesmo passar um cliente que você já esteja usando em seu aplicativo.
Configurar um cliente HTTP versus usar o cliente padrão
Utilizar o cliente padrão fornecido é a maneira mais fácil de começar a usar o SDK. No entanto, configurar seu próprio cliente HTTP lhe trará os seguintes benefícios:
- Otimização: Fine-tune o cliente para melhor desempenho, como pool de conexões, timeouts e novas tentativas.
- Integração: Use um cliente HTTP existente que já esteja configurado e testado em sua aplicação.
Portanto, se você deseja otimizar o SDK para obter melhor desempenho ou integrá-lo a um cliente HTTP existente, configurar seu próprio cliente HTTP é o caminho a seguir.
Como configurar seu cliente HTTP
Para configurar seu cliente HTTP, você precisa criar uma instância de OkHttpClient e passá-la para o construtor RapidClient.
1. Crie uma instância de OkHttpClient com suas configurações. Você pode usar uma instância existente ou criar uma nova.
Exemplo:
OkHttpClient customClient = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.build();Para obter mais informações sobre como configurar o OkHttpClient, consulte o ##documentação OkHttp.
2. Passe a instância OkHttpClient para o construtor RapidClient``builderWithHttpClient.
Exemplo:
RapidClient rapidClient = RapidClient.builderWithHttpClient()
.okHttpClient(customClient)
.key("YOUR_API_KEY")
.secret("YOUR_API_SECRET")
.build();3. Use o rapidClient configurado para fazer chamadas de API como de costume.
Exemplo:
GetAvailabilityOperationParams getAvailabilityOperationParams = GetAvailabilityOperationParams.builder()
.checkin("YYYY-MM-DD")
.checkout("YYYY-MM-DD")
.currency("USD")
.language("en_US")
/* ... */
.build();
GetAvailabilityOperation operation = new GetAvailabilityOperation(params);
Response<List<Property>> response = rapidClient.execute(operation);