HTTP API
Теория: HTTPie
При работе с API важно иметь под рукой удобный инструмент для выполнения HTTP-запросов. Одним из таких инструментов является утилита командной строки HTTPie. Это мощный инструмент для работы с HTTP-запросами, который создан с акцентом на удобство использования человеком. По сравнению с curl, который часто применяется в скриптах и автоматизации, HTTPie предлагает более интуитивно понятный синтаксис и читабельный вывод. Одним из главных преимуществ HTTPie является его способность удобно работать с JSON данными.
В этом уроке мы рассмотрим основные возможности HTTPie и научимся отправлять HTTP-запросы, просматривать заголовки и тело ответа, а также самим отправлять заголовки и тело в запросе. Мы также узнаем, как использовать HTTPie для работы с JSON-данными
Знакомство с утилитой начнем с отправки простого GET запроса. Все что нужно HTTPie для выполнения такого запроса — это URL-адрес
При таком запросе мы увидим на экране и заголовки и тело ответа. Если нам нужно увидеть только тело ответа, можно использовать опцию -b
Если нужно увидеть не только ответ, но и запрос, то понадобится флаг -v или --verbose. Он покажет все взаимодействие — и запрос и ответ:
Параметры строки запроса
Нам может понадобиться отправить дополнительные данные на сервер в параметрах строки запроса. Чтобы не формировать строку вручную, мы можем передать параметры в виде пар ключ-значение, используя синтаксис param==value. HTTPie автоматически распарсит их и сформирует строку запроса:
HTTP метод
Утилита по умолчанию использует метод GET для запросов без тела и POST для запросов с телом. При этом утилита никак не ограничивает нас в самостоятельном выборе HTTP метода. Если нужно использовать другой метод, его имя указывается непосредственно перед аргументом URL:
Отправка заголовков
HTTPie сам по умолчанию устанавливает некоторые заголовки, ориентируясь на параметры при вызове утилиты:
Но нам может понадобиться передать собственные заголовки или переопределить установленные по умолчанию. Чтобы передать собственный заголовок в запросе, используется синтаксис Header:Value
Указание тела в запросе
Утилита предоставляет удобный способ передать данные на сервер в теле запроса. Мы можем указать поля с данными в виде пар "ключ-значение" при помощи синтаксиса key=value.
Поскольку JSON очень распространен в современных веб-сервисах, он используется в HTTPie как тип контента по умолчанию. Эти поля будут автоматически сериализованы как JSON-объект, что избавляет нас от необходимости его ручного составления. При этом HTTPie автоматически установит тип контента (заголовок Content-Type) application/json
Если нам понадобится отправить эти данные в виде формы, нужно будет использовать опцию -f или --form. Данные будут сериализованы как форма, а тип контента автоматически будет установлен application/x-www-form-urlencoded
При необходимости можно передать и "сырое" тело. Это делается при помощи опции --raw. Данные будут переданы на сервер как есть, без какого-либо преобразования:
Выводы
В этом уроке мы изучили, как использовать утилиту HTTPie для отправки HTTP-запросов. Мы научились отправлять различные типы запросов, устанавливать заголовки и тело запроса, а также использовать опции для изменения вывода результатов. HTTPie - это мощный и удобный инструмент, который поможет вам взаимодействовать с API
.png)














