PHP
변경 이력
패키지의 모든 릴리스를 최신순으로 정리했습니다.
0.0.1
첫 번째 릴리스입니다. 이 릴리스를 만든 시점의 TypeScript SDK 전체를 포함합니다: 41개 네임스페이스에 걸친 430개 메서드가 각각 TypeScript 이름 그대로 제공되며, 그 모두가 TypeScript 짝이 보내는 요청과 바이트 단위로 같은 요청을 보냅니다.
OpenEmail\OpenEmail에는emails,threads,templates부터providerImports,dnsConnections,account까지 모든 네임스페이스의 속성이 있으며, 각 속성의 메서드는 TypeScript 이름을 그대로 씁니다.- 요청 본문은 키가 API의 camelCase 이름을 그대로 쓰는 연관 배열이고, 옵션은
idempotencyKey:와apiKey:같은 명명된 인자입니다. 응답은 디코딩된 연관 배열로 돌아옵니다. - 페이지로 나뉘는 모든 리소스에는
Page하나를 반환하는list, 모든 항목을 배열로 반환하는listAll, 그리고 다음 페이지에 이르렀을 때만 그 페이지를 가져오는 Generator를 반환하는iterate가 있습니다.PeoplePage,TempMessagesPage,AddressBookPage,AddressBook,BatchResult,TemplateSends는 목록 이상을 담은 답을 전달합니다. - API의 거부는
ApiException또는 오류 유형에 맞는 그 하위 클래스를 던지며, 여기에는status,type,errorCode,param,docUrl,requestId,retryAfterSeconds,fields,body와,isValidation(),isStepUpRequired()같은 메서드가 있습니다. 응답이 전혀 없으면NetworkException을 던지며, 기한이 지났으면isTimeout()이 true입니다. 호출 자체의 실수는 무엇이든 보내기 전에InvalidArgumentException을 던집니다. 모두OpenEmailException을 구현합니다. new OpenEmail()와OpenEmail::createClient()는 지정하지 않은 값을OPENEMAIL_API_KEY,OPENEMAIL_ACCESS_TOKEN,OPENEMAIL_BASE_URL에서 읽고,OpenEmail::init(),OpenEmail::getClient(),OpenEmail::resetClient()는 공유 클라이언트 하나를 관리합니다.OpenEmail::createTempMail()은 자격 증명 없이 일회용 받은편지함을 엽니다.accessToken:은 OAuth 액세스 토큰, 또는 토큰을 반환하는 호출 가능 객체를 받으며, 이 객체는 모든 요청 전에 호출됩니다. 모든 메서드는 호출 하나에 한해 다른 키로 실행하기 위한apiKey:를 받고,tempMail메서드는inboxToken:을 받습니다. 자격 증명을 담는 모든 매개변수에는#[\SensitiveParameter]가 표시되어 있습니다.OpenEmail::verifyWebhookSignature()는 전달을 상수 시간으로 검사하고, 5분보다 오래된 것은 거부하며, 디코딩된 이벤트를 반환합니다. 서명은 대소문자를 가리지 않는 헤더 배열,$_SERVER, Symfony나 Laravel의 헤더 백, 또는 PSR-7 요청에서 읽습니다.OpenEmail::toBase64(),isApiKey(),isAccessToken(),isSealed(),resolveLanguage(),languageByCode(),isRtlLanguage()는 TypeScript SDK의 헬퍼에 해당하며, 그 패키지 루트가 내보내는 모든 값 집합은OpenEmail\Constants의 클래스입니다.- curl과 json 확장을 갖춘 PHP 8.2 이상만 있으면 되며, 그 밖에는 필요한 것이 없습니다. 요청은 클라이언트마다 하나의 cURL 핸들을 거치며, 이 핸들은 요청 사이에 연결을 열어 두고
pcntl_fork후에는 새 연결을 엽니다.timeout:은 시도 하나 전체의 상한입니다.Psr18HttpClient를 쓰면 대신 Guzzle, Symfony HttpClient, 또는 다른 PSR-18 클라이언트를 거쳐 보냅니다. - 읽기, 발송, 그리고 반복해도 안전한 모든 쓰기는 408, 500, 502, 503, 504에서 백오프와 함께 재시도되며, 429에서는
Retry-After가 1분 이하일 때만 재시도됩니다. 모든 발송에는 재시도에서 재사용되는 멱등성 키가 붙습니다. - 클라이언트는 이 컴퓨터 외의 곳으로 암호화되지 않은
http:를 통해 자격 증명을 보내기를 거부하고,0.0.0.0의 기본 URL을 거부하며, 요청을 쪼갤 수 있는 헤더를 거부하고,raw->request()가 기본 URL의 오리진을 벗어나는 것을 절대 허용하지 않습니다.