Перейти к документации
Java

Вспомогательные функции и константы

Что ещё определяет пакет помимо методов клиента.

Статические методы

МетодЧто это
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() возвращает весь набор, и так же можно проверить значение, пришедшее извне.

Constants.java
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 обходит его строки.

КлассЧто несёт
Pageitems, hasMore и nextCursor из каждого постраничного list.
PeoplePageТо же самое плюс seen, из contacts().listPeople.
TempMessagesPageТо же самое плюс expiresAt, из tempMail().listMessages.
AddressBookPage, AddressBookunrestricted, addresses и domains, из addresses().list (с hasMore и nextCursor) и addresses().listAll.
BatchResultitems, sent и failed, из emails().sendBatch.
TemplateSendsitems, total, page и pageSize, из templates().listSends.
PagedIterableОбход всех страниц, из каждого iterate: цикл for, stream() или toList().
Body, RequestOptionsЧто принимает вызов: тело запроса, которое сохраняет свой порядок и принимает значения null, и параметры одного вызова.

Каждое исключение, которое выбрасывает пакет, является OpenEmailException: ApiException и его подклассы, NetworkException и WebhookSignatureException. Ошибка в самом вызове выбрасывает IllegalArgumentException до отправки чего-либо.

Чего он намеренно не делает

  • Он не проверяет тело запроса. Схема сервера является единственной копией правил, а вторая копия здесь рано или поздно отклонила бы адрес, который принимает более новый сервер, в версии, которую кто-то закрепил два года назад.
  • Он меняет форму ответа только одним способом: список data коллекции извлекается из своей оболочки в один из типов выше. Любой другой ответ возвращается таким, каким его отправил API, с ключами API в camelCase.
  • В нём нет асинхронных методов. Вызов блокирует свой поток, пока не придёт ответ, что на виртуальном потоке стоит недорого.