Saltar para a documentação
Java

Configuração

Cada opção do cliente, o que ele lê do ambiente e o que recusa.

Opções

Client.java
OpenEmail client = OpenEmail.builder()    .apiKey(System.getenv("OPENEMAIL_API_KEY"))    .baseUrl("https://api.openemail.uk")    .timeout(Duration.ofSeconds(30))    .maxRetries(2)    .header("X-Team", "billing")    .build(); System.out.println(client.mode());
OpçãoO que faz
apiKeyA chave de API do espaço de trabalho, que começa por oe_live_ ou oe_test_. Numa chamada, atua com outra chave apenas nessa chamada.
accessTokenUm token de acesso OAuth, para uma aplicação que uma pessoa ligou. Passe uma chave ou um token, não ambos.
accessToken(Supplier<String>)Uma função que devolve o token de acesso. É executada antes de cada pedido, por isso é o sítio para renovar um token.
baseUrlA origem da API. A um host sem esquema, como localhost:2222, é acrescentado o esquema.
httpClientO seu próprio java.net.http.HttpClient, para um proxy, um SSLContext personalizado ou um executor.
timeoutQuanto tempo pode demorar uma tentativa. A predefinição é de 30 segundos, zero desliga-o, e os carregamentos esperam pelo menos dez minutos.
maxRetriesQuantas vezes um pedido falhado é tentado de novo. O valor predefinido é 2, e 0 envia uma só vez.
userAgentSubstitui o cabeçalho User-Agent, que é openemail-java/ seguido da versão.
header, headersAcrescenta um cabeçalho a todos os pedidos.
disableUpdateNoticeDesliga a única linha na saída de erro padrão que avisa que saiu uma versão mais recente. OPENEMAIL_DISABLE_UPDATE_NOTICE=1 faz o mesmo.

Tudo o que omitir é lido do ambiente: OPENEMAIL_API_KEY, depois OPENEMAIL_ACCESS_TOKEN, e OPENEMAIL_BASE_URL. client.mode() diz se a chave é uma chave live ou test.

Opções de uma chamada

Os parâmetros de consulta e as definições de uma chamada vão num RequestOptions, passado depois dos argumentos. Tem um método para apiKey, idempotencyKey, timeout, limit e cursor, e set aceita qualquer outra opção com o nome que a API usa. Cada método aceita as opções que a sua entrada na referência enumera, e uma opção que não se aplica é recusada antes de se enviar seja o que for.

AnotherWorkspace.java
RequestOptions options = RequestOptions.of("folder", "inbox")    .apiKey(System.getenv("OPENEMAIL_API_KEY"))    .timeout(Duration.ofSeconds(5))    .limit(50); Page threads = client.threads().list(options); System.out.println(threads.size());

Um RequestOptions é imutável: cada método devolve um novo, por isso um valor partilhado nunca pode ser alterado pelo código que lhe acrescenta algo. Interromper a thread para uma chamada que está à espera.

O que o cliente recusa

  • Uma chave que não começa por oe_live_ ou oe_test_, e uma chave juntamente com um token de acesso.
  • Enviar uma credencial por http: simples, a menos que o servidor esteja nesta máquina, em localhost, num endereço 127.x.x.x ou em ::1.
  • Um URL base em 0.0.0.0, que é um endereço em que um servidor escuta. Use 127.0.0.1 com a mesma porta.
  • Um id vazio, ou feito apenas de pontos, que um analisador de URL removeria.
  • Seguir um redirecionamento. O cliente HTTP predefinido nunca segue nenhum, por isso uma credencial nunca viaja para outro anfitrião.

Imprimir um cliente, um RequestOptions ou uma exceção nunca mostra uma credencial. A chave, o token e os valores dos cabeçalhos personalizados ficam fora de toString() e de todas as mensagens que o cliente escreve.

Um endpoint sem método

client.raw().request chama qualquer caminho com a credencial, o URL base, o tempo limite e a política de novas tentativas do cliente. O caminho tem de começar por uma única /, e um caminho que saia da origem do URL base é recusado.

RawRequest.java
Object label = client.raw().request("POST", "/labels", Body.of("name", "Invoices")); System.out.println(label);