--- title: Собрать HTTP-запрос description: Выберите место для каждого значения и объявите запрос типизированной операцией. freshness: false --- HTTP-операция связывает аргументы Python с методом, адресом, заголовками и телом запроса. Начните с класса операции, затем выберите маркер для каждого значения. Клиент проверит вызов, подготовит байты и преобразует успешный ответ в объявленный тип. ## Выберите место значения | Что ждёт API | Что объявить | Руководство | |---|---|---| | часть адреса `/users/{user_id}` | `Path[T]` | {doc}`Подставить значение в путь ` | | параметры после `?` | `Query[T]` | {doc}`Добавить параметры запроса ` | | HTTP-заголовок | `Header` | {doc}`Добавить заголовки ` | | cookie одного вызова | `Cookie` | {doc}`Передать cookie ` | | поля JSON-объекта | `JsonField[T]` | {doc}`Отправить JSON ` | | HTML-форма | `Form[T]` | {doc}`Отправить форму ` | | файл и сопутствующие поля | `Part[T]` | {doc}`Отправить файл ` | | готовые байты | `BytesBody` | {doc}`Отправить готовые байты ` | Поле `Omittable[T] = UNSET` можно не отправлять. Значение `None` отличается от `UNSET`: оно остаётся явным значением, если тип поля допускает `None`. ## Как запрос проходит через SDK 1. Конструктор операции проверяет имена аргументов, типы и обязательные поля. 2. Маркеры раскладывают значения по пути, строке запроса, заголовкам, cookie и телу. 3. `Wire` задаёт имена, порядок и правила кодирования. 4. Политики авторизации, защиты, подписи и шифрования дополняют подготовленный запрос. 5. Клиент отправляет окончательные байты через выбранный обработчик транспорта. Если публичные аргументы не совпадают со структурой тела, используйте {doc}`проекцию `. Если запрос нужно сохранить или изменить перед отправкой, используйте {doc}`запрос как значение `. Адрес соседнего сервиса и адрес, пришедший в ответе, описаны на странице {doc}`про адреса `. ## Дальше - {doc}`Объявите операцию классом или декоратором `. - {doc}`Настройте обработку успешного ответа `. - {doc}`Выберите HTTP-клиент `.