Ir a la documentación
Base de conocimiento

SDK tipados

Primero un cliente TypeScript, después el resto.

Detalles

  • Publicado en npm y en uso. @openemail/sdk es un cliente TypeScript completo y sin dependencias, publicado tanto como ESM como CommonJS, con un método por cada operación documentada que sirve la API, más los dos endpoints meta sin autenticación que necesita un generador de clientes, y con la clave leída de OPENEMAIL_API_KEY, un tiempo de espera de 30 segundos por intento, dos reintentos, un apiKey por llamada que tiene prioridad para un proceso que atiende varios espacios de trabajo, y emails.iterate() para paginar una lista sin escribir el bucle del cursor. Funciona en Node 18 y superior, Workers, Deno, Bun y el navegador. Una clave con el prefijo equivocado lanza un error al construirse en lugar de devolver 401 en la primera llamada; la comprobación es el prefijo y nada más, así que una clave bien formada que haya sido revocada sigue fallando en la red.
  • Se mantiene sujeto al servidor mediante una comprobación de paridad que lee el documento OpenAPI en cada compilación y falla si ambos se desvían: un método que apunta a una operación que la especificación no tiene, una operación documentada sin método, una lista de scopes que no coincide con la que exige la operación, un espacio de nombres con métodos y sin entrada en la referencia, o un método que no envía la solicitud que nombra su propio manifiesto. Imprime lo que ha demostrado, y hoy eso dice 116 métodos del SDK que cubren las 104 operaciones documentadas. A su lado hay dos scripts generadores que se niegan a emitir una operación sin clasificar o escrita con una raya. Por eso el cliente no es un envoltorio escrito a posteriori. No puede quedarse una versión por detrás de la API.
  • Lo que falta es la mecánica de publicación. El paquete está en npm, así que bun add @openemail/sdk funciona, pero no hay flujo de publicación: publicar es ejecutar a mano la comprobación previa, la compilación y bun publish, lo que significa que una versión llega a npm cuando alguien se acuerda y no cuando aterriza el cambio. La API que usa por defecto está activa y respondiendo.
  • TypeScript es el único lenguaje, y el documento OpenAPI es deliberadamente la respuesta para el resto, en lugar de cinco clientes escritos a mano que se quedan atrás a ritmos distintos. No hay cliente de Python, Go ni Ruby en el repositorio, y no lo habrá antes de que el documento sea aquello a partir de lo que se generen.