Точки расширения#
Расширение Eazy SDK подключается к владельцу конкретного решения. Оно не заменяет исполнитель и
не добавляет параллельный конвейер
(eazy_sdk.ext).
flowchart TD
Contract["Контракт операции"] --> Codecs["ScalarCodec / BodyCodec"]
Contract --> Signing["CustomRequestSigner"]
Response["Ответ"] --> Parser["ResponseParser / Extractor"]
Prepared["PreparedRequest"] --> Handler["Zapros handler"]
Requirements["Требования транспорта"] --> Profile["HandlerProfile"]
Profile --> Validate["Проверка до отправки"]
Codecs --> Executor["Единый исполнитель"]
Signing --> Executor
Parser --> Executor
Handler --> Executor
Как выбрать границу#
Требуется |
Контракт |
Модуль |
|---|---|---|
Кодировать одно значение или тело |
|
|
Извлечь данные из ответа |
|
|
Полностью разобрать ответ |
|
|
Построить нестандартную подпись |
|
|
Ограничить область применения |
|
|
Отправить запрос другим HTTP-клиентом |
Zapros handler и |
HandlerProfile сообщает наблюдаемые возможности транспорта: протокол, точность адреса,
заголовки, готовые байты тела, cookies и перенаправления. Исполнитель сравнивает профиль с
требованиями операции до отправки и перечисляет все несовпадения в CapabilityMismatchError
(validate_profile).
Порядок стадий запроса расширять нельзя. Новый кодек, проекция, конверт, шифрование или подпись
работают внутри уже объявленной стадии REQUEST_PIPELINE
(eazy_sdk.request.pipeline).