Слои и границы#

Кто за что отвечает?

Архитектура Eazy SDK разделяет декларацию контракта, выполнение вызова и работу транспорта. Корень SDK только собирает роутеры, назначает им клиентов и адреса. Он не содержит операций (eazy_sdk.root).

        flowchart LR
    Author["Автор SDK"] --> Declaration["Операции и роутеры"]
    Declaration --> Compile["Компиляция контракта"]
    Compile --> Execute["Единый исполнитель"]
    Execute --> Transport["Обработчик транспорта"]
    Transport --> Service["HTTP-сервис"]
    Identity["Identity"] --> Execute
    Serialization["Serialization"] --> Compile
    Config["ClientConfig"] --> Execute
    

Владельцы решений#

Слой

Владеет

Не владеет

Модуль

Декларация

Поля, путь, ответы, подпись, шифрование

Соединение и повторы

eazy_sdk.api

Корень SDK

Состав роутеров, привязка клиента и адреса

Операции и состояние транспорта

eazy_sdk.root

Identity

Авторизация, ключи подписи, зависимости, наблюдатель

Cookies, прокси и пул соединений

eazy_sdk.identity

Serialization

Адаптеры моделей и кодеки данных

Политика повторов

eazy_sdk.serialization

ClientConfig

Повторы, перенаправления, защиты и middleware

Учётные данные и модели

eazy_sdk.clients.config

Обработчик

Преобразование подготовленного запроса в сетевой обмен

Семантика операции

eazy_sdk.handlers

Синхронный и асинхронный клиенты используют одну спецификацию выполнения. Синхронный драйвер пошагово завершает ту же корутину без отдельного цикла событий; настоящий асинхронный ввод-вывод требует AsyncClient (eazy_sdk.driver).

Дальше#