PHP
Registro de cambios
Todas las versiones del paquete, de la más reciente a la más antigua.
0.0.1
La primera versión. Cubre todo el SDK de TypeScript tal como estaba cuando se publicó esta versión: 430 métodos en 41 espacios de nombres, cada uno con su nombre de TypeScript, y cada uno de ellos envía, byte a byte, la solicitud que envía su gemelo de TypeScript.
OpenEmail\OpenEmailtiene una propiedad para cada espacio de nombres, desdeemails,threadsytemplateshastaproviderImports,dnsConnectionsyaccount, y los métodos de cada uno conservan sus nombres de TypeScript.- Un cuerpo de solicitud es un array asociativo cuyas claves conservan los nombres en camelCase de la API, y las opciones son argumentos nombrados como
idempotencyKey:yapiKey:. Una respuesta vuelve como el array asociativo decodificado. - Cada recurso paginado tiene
list, que devuelve unaPage,listAll, que devuelve todos los elementos como un array, eiterate, que devuelve un Generator que solo obtiene la página siguiente cuando llega a ella.PeoplePage,TempMessagesPage,AddressBookPage,AddressBook,BatchResultyTemplateSendsllevan las respuestas que contienen algo más que una lista. - Un rechazo de la API lanza
ApiExceptiono su subclase para el tipo de error, constatus,type,errorCode,param,docUrl,requestId,retryAfterSeconds,fieldsybody, y métodos comoisValidation()eisStepUpRequired(). La falta total de respuesta lanzaNetworkException, conisTimeout()cuando venció el plazo. Un error en la propia llamada lanzaInvalidArgumentExceptionantes de enviar nada. Todas implementanOpenEmailException. new OpenEmail()yOpenEmail::createClient()leenOPENEMAIL_API_KEY,OPENEMAIL_ACCESS_TOKENyOPENEMAIL_BASE_URLpara todo lo que omitas, yOpenEmail::init(),OpenEmail::getClient()yOpenEmail::resetClient()gestionan un cliente compartido.OpenEmail::createTempMail()abre buzones desechables sin credencial.accessToken:acepta un token de acceso OAuth, o un callable que devuelva uno, invocado antes de cada solicitud. Cada método aceptaapiKey:para actuar con otra clave en una sola llamada, y los métodos detempMailaceptaninboxToken:. Cada parámetro que lleva una credencial está marcado con#[\SensitiveParameter].OpenEmail::verifyWebhookSignature()comprueba una entrega en tiempo constante, rechaza una con más de cinco minutos de antigüedad y devuelve el evento decodificado. Lee la firma de un array de cabeceras con cualquier combinación de mayúsculas y minúsculas, de$_SERVER, de un header bag de Symfony o Laravel, o de una solicitud PSR-7.OpenEmail::toBase64(),isApiKey(),isAccessToken(),isSealed(),resolveLanguage(),languageByCode()yisRtlLanguage()son las utilidades del SDK de TypeScript, y cada conjunto de valores que exporta la raíz de su paquete es una clase enOpenEmail\Constants.- Necesita PHP 8.2 o posterior con las extensiones curl y json, y nada más. Las solicitudes pasan por un handle de cURL por cliente, que mantiene abierta su conexión entre solicitudes y abre una nueva tras
pcntl_fork, ytimeout:acota un intento completo.Psr18HttpClientlas envía en su lugar a través de Guzzle, Symfony HttpClient o cualquier otro cliente PSR-18. - Las lecturas, los envíos y cada escritura que se puede repetir sin riesgo se reintentan ante un 408, 500, 502, 503 y 504 con backoff, y ante un 429 solo cuando su
Retry-Afteres de un minuto o menos. Cada envío lleva una clave de idempotencia que reutilizan sus reintentos. - El cliente se niega a enviar una credencial por
http:sin cifrar a cualquier cosa que no sea esta máquina, rechaza una URL base en0.0.0.0, rechaza una cabecera que partiría una solicitud y nunca deja queraw->request()salga del origen de la URL base.