Вспомогательные функции и константы
Что ещё определяет пакет помимо методов клиента.
Статические методы
| Метод | Что это |
|---|---|
| new OpenEmail(), OpenEmail.builder() | Клиент. Оба читают окружение для всего, что вы не указали. |
| OpenEmail.createTempMail() | Клиент одноразовых ящиков без API-ключа. |
| OpenEmail.verifyWebhookSignature() | Проверяет подпись доставки за постоянное время, с окном в пять минут, которое меняет Duration, и возвращает событие. |
| OpenEmail.toBase64() | Текст base64 для байтов вложения. |
| OpenEmail.isApiKey() | Имеет ли значение форму oe_live_ или oe_test_. Это проверка формы, а не доказательство того, что ключ ещё работает. |
| OpenEmail.isAccessToken() | Имеет ли значение форму токена доступа OAuth: от 1 до 512 символов, не начинается с oe_. |
| OpenEmail.isSealed() | Является ли тело сообщения шифротекстом. Равно false для двух подписанных форматов, тела которых пришли открытыми. |
| OpenEmail.resolveLanguage(), OpenEmail.languageByCode(), OpenEmail.isRtlLanguage() | Поиск, который нужен для выбора языка, по встроенной таблице Languages.ALL. |
| client.raw().request() | Вызывает путь, который пока не оборачивает ни один метод, с учётными данными и правилами повторов клиента. |
Константы
Каждый набор значений, который экспортирует TypeScript SDK, представляет собой финальный класс в uk.openemail.constants с одной константой на каждый элемент под теми же именами, поэтому WebhookEvents.EMAIL_DELIVERED равно email.delivered. values() возвращает весь набор, и так же можно проверить значение, пришедшее извне.
List<String> events = WebhookEvents.values();List<String> scopes = List.of(ApiScopes.EMAILS_SEND, ApiScopes.THREADS_READ);boolean known = events.contains("email.delivered"); System.out.println(events.size() + " " + String.join(",", scopes) + " " + PageLimits.MAX_LIMIT + " " + known);| Константа | Что в нём |
|---|---|
| OpenEmail.VERSION | Версия пакета. |
| ApiScopes | Словарь областей — для экрана создания ключа. |
| WebhookEvents, WebhookSignatureHeaders | События, на которые может подписаться эндпоинт, и имена заголовков, которые несёт доставка. |
| ErrorTypes | Словарь ошибок, который возвращает ApiException.type(). |
| PageLimits | Наибольший limit и limit по умолчанию в большинстве постраничных списков, MAX_LIMIT и DEFAULT_LIMIT: 100 и 25. Некоторые списки принимают больше, и справочник каждого метода об этом говорит. |
| RuleFields, RuleOperators, RuleActions | Словарь, из которого строятся условия и действия правила. |
| MessageEncryptionFormats | Пять конвертов, которые может назвать приём почты. Три из них запечатаны. |
| CredentialKinds, StepUpMethods, StepUpErrorCodes | Какие учётные данные описывают me().get и me().ping, как проверяется код подтверждения и коды, с которыми подтверждение может завершиться неудачей. |
| ThreadSorts, PeopleSorts, FileSorts и другие *Sorts | Порядки, в которых можно сортировать список. |
| FormStatuses, BroadcastStatuses, SuppressionReasons и другие наборы | Значения, которые может принимать поле ресурса. Каждый набор назван по тому, что в нём содержится. |
| Languages.ALL | Все языки, которые принимает отправка или предпросмотр с переводом, с их кодом, названиями и направлением письма. |
Объекты
Ответ представляет собой декодированный JSON в виде Map<String, Object>. Пакет создаёт собственный тип только там, где он придаёт ответу форму. Каждый из них является неизменяемым record в uk.openemail.result, и цикл for обходит его строки.
| Класс | Что несёт |
|---|---|
| Page | items, hasMore и nextCursor из каждого постраничного list. |
| PeoplePage | То же самое плюс seen, из contacts().listPeople. |
| TempMessagesPage | То же самое плюс expiresAt, из tempMail().listMessages. |
| AddressBookPage, AddressBook | unrestricted, addresses и domains, из addresses().list (с hasMore и nextCursor) и addresses().listAll. |
| BatchResult | items, sent и failed, из emails().sendBatch. |
| TemplateSends | items, total, page и pageSize, из templates().listSends. |
| PagedIterable | Обход всех страниц, из каждого iterate: цикл for, stream() или toList(). |
| Body, RequestOptions | Что принимает вызов: тело запроса, которое сохраняет свой порядок и принимает значения null, и параметры одного вызова. |
Каждое исключение, которое выбрасывает пакет, является OpenEmailException: ApiException и его подклассы, NetworkException и WebhookSignatureException. Ошибка в самом вызове выбрасывает IllegalArgumentException до отправки чего-либо.
Чего он намеренно не делает
- Он не проверяет тело запроса. Схема сервера является единственной копией правил, а вторая копия здесь рано или поздно отклонила бы адрес, который принимает более новый сервер, в версии, которую кто-то закрепил два года назад.
- Он меняет форму ответа только одним способом: список
dataколлекции извлекается из своей оболочки в один из типов выше. Любой другой ответ возвращается таким, каким его отправил API, с ключами API в camelCase. - В нём нет асинхронных методов. Вызов блокирует свой поток, пока не придёт ответ, что на виртуальном потоке стоит недорого.