Ir a la documentación
Java

Configuración

Cada opción del cliente, lo que lee del entorno y lo que rechaza.

Opciones

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());
OpciónQué hace
apiKeyLa clave de API del espacio de trabajo, que empieza por oe_live_ o oe_test_. En una llamada, actúa con otra clave solo para esa llamada.
accessTokenUn token de acceso de OAuth, para una aplicación que una persona conectó. Pasa una clave o un token, no ambos.
accessToken(Supplier<String>)Una función que devuelve el token de acceso. Se ejecuta antes de cada petición, así que es el lugar donde renovar un token.
baseUrlEl origen de la API. A un host sin esquema, como localhost:2222, se le añade el esquema.
httpClientTu propio java.net.http.HttpClient, para un proxy, un SSLContext personalizado o un ejecutor.
timeoutCuánto puede durar un intento. El valor predeterminado es de 30 segundos, cero lo desactiva y las subidas esperan al menos diez minutos.
maxRetriesCuántas veces se reintenta una petición fallida. El valor por defecto es 2, y 0 envía una sola vez.
userAgentSustituye la cabecera User-Agent, que es openemail-java/ y la versión.
header, headersAñade una cabecera a todas las peticiones.
disableUpdateNoticeDesactiva la única línea en la salida de error estándar que avisa de que ha salido una versión más nueva. OPENEMAIL_DISABLE_UPDATE_NOTICE=1 hace lo mismo.

Todo lo que omitas se lee del entorno: OPENEMAIL_API_KEY, luego OPENEMAIL_ACCESS_TOKEN, y OPENEMAIL_BASE_URL. client.mode() indica si la clave es una clave live o test.

Opciones de una llamada

Los parámetros de consulta y los ajustes de una llamada van en un RequestOptions, que se pasa después de los argumentos. Tiene un método para apiKey, idempotencyKey, timeout, limit y cursor, y set admite cualquier otra opción con el nombre que usa la API. Cada método acepta las opciones que enumera su entrada de la referencia, y una opción que no corresponde se rechaza antes de enviar nada.

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());

Un RequestOptions es inmutable: cada método devuelve uno nuevo, así que un valor compartido nunca puede ser modificado por el código que le añade algo. Interrumpir el hilo detiene una llamada que está esperando.

Lo que el cliente rechaza

  • Una clave que no empieza por oe_live_ o oe_test_, y una clave junto con un token de acceso.
  • Enviar una credencial por http: sin cifrar, salvo que el servidor esté en esta máquina, en localhost, en una dirección 127.x.x.x o en ::1.
  • Una URL base en 0.0.0.0, que es una dirección en la que escucha un servidor. Usa 127.0.0.1 con el mismo puerto.
  • Un id vacío, o uno formado solo por puntos, que un analizador de URL eliminaría.
  • Seguir una redirección. El cliente HTTP por defecto nunca sigue ninguna, así que una credencial nunca viaja a otro host.

Imprimir un cliente, un RequestOptions o una excepción nunca muestra una credencial. La clave, el token y los valores de las cabeceras personalizadas quedan fuera de toString() y de todos los mensajes que escribe el cliente.

Un endpoint sin método

client.raw().request llama a cualquier ruta con la credencial, la URL base, el tiempo de espera y la política de reintentos del cliente. La ruta debe empezar por una sola /, y una ruta que sale del origen de la URL base se rechaza.

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