Что строим#
В этом разделе мы соберём SDK для учебного сервиса «Почта» на mail.example. Имя и домен
вымышлены, а форма входа, список писем и токен в HTML взяты из настоящего почтового API. Код
работает локально и не обращается к внешнему сервису.
Один сайт обслуживает две линии. HTTP-линия вызывает JSON API, браузерная заполняет формы и читает признаки страниц. Они используют общие аккаунты, сессии и письма, поэтому результат можно сверять между транспортами.
Что в примере учебное#
Часть сайта |
Основа |
Зачем она нужна в разборе |
|---|---|---|
Конверт ответа с |
Форма настоящего API |
Показать варианты типизированного ответа |
Токен в HTML страницы входящих |
Форма настоящего API |
Передать браузерную сессию HTTP-клиенту |
Смещение и лимит списка писем |
Форма настоящего API |
Разобрать пагинацию со смещением |
Краткие данные пользователя через |
Форма настоящего API |
Проверить сессию отдельным запросом |
Проверка TLS-отпечатка клиента |
Форма настоящего API |
Объяснить выбор |
Вход в два шага и переход ко второму фактору |
Форма настоящего API |
Разобрать несколько страниц одного входа |
Тост, диалог и отсутствие признака после отправки |
Форма настоящего API |
Различить три исхода композера |
Капча во время входа |
Учебное добавление |
Показать решатель и повтор шага |
Курсор и готовая ссылка следующей страницы |
Учебное добавление |
Сравнить три стратегии пагинации |
Подпись и шифрование отправки |
Учебное добавление |
Показать клиентскую подготовку запроса |
Отдельные исходы блокировки и неизвестного аккаунта |
Учебное добавление |
Разобрать отказы на точных признаках |
HTTP-линия обращается к сайту через клиент Eazy SDK. Все ответы входа, сессии и писем приходят
от одного MailSite.
Метод и путь |
Задача |
|---|---|
|
Найти аккаунт и начать вход |
|
Проверить пароль или запросить капчу |
|
Проверить второй фактор и выдать сессию |
|
Обновить истёкшую сессию |
|
Получить текущего пользователя |
|
Проверить TLS-отпечаток клиента |
|
Прочитать письма с пагинацией |
|
Отправить подписанное письмо |
|
Найти письмо после неопределённого исхода |
В следующих главах эти ручки станут отдельными операциями и роутерами.
Браузерная линия видит те же данные через страницы. Переходы между формами становятся типизированными состояниями SDK.
Страница или признак |
Задача |
|---|---|
|
Ввести адрес аккаунта |
Страница с полем |
Отправить пароль |
|
Подтвердить второй фактор |
Страница с |
Решить капчу и повторить текущий шаг |
|
Подтвердить вход и прочитать токен сессии |
Коллекция |
Получить письма и подгрузить следующую часть |
|
Отправить письмо и различить три исхода |
Подпись и шифрование выполняет JavaScript самой учебной страницы. Браузерная операция управляет формой и читает исход; клиентское преобразование Eazy SDK разберёт HTTP-линия.
Как читать разбор#
Выбор вкладки сохраняется между главами. Начните с привычного транспорта, а второй открывайте, когда нужно сравнить объявления или передать сессию из браузера HTTP-клиенту.
Каждый фрагмент берётся из запускаемого файла в examples/mail/. Код сайта и тестовая обвязка
остаются за пределами страницы; рядом с примером будут только запрос, ответ и фактический вывод.