HTTPie-length-fixed | OTUS

HTTPie-length-fixed

WebDev_Deep_20.4-5020-5328d1.png

Часто при написании на Python веб-сервисов, предоставляющих REST API, хочется посмотреть, как сервис реагирует на различные HTTP-запросы. Конечно, можно мучиться с браузером или пользоваться curl, но когда интересующий запрос содержит нестандартные заголовки, тело в формате JSON, Cookie и прочее, длина командной строки для вызова curl становится устрашающей, а помнить нужные ключи вызова становится всё труднее.

На выручку спешит инструмент под названием HTTPie. Он легко устанавливается в популярных ОС, так как сам по себе написан на Python.

Синтаксис вызова HTTPie необычайно прост: устанавливаемый в систему бинарник называется http, командная строка для POST-запроса к API выглядит следующим образом:

http POST localhost:8080/api/method

Добавить в запрос дополнительный заголовок можно, дописав в конец строки название заголовка и через двоеточие — его значение, например, Authorization:secret-token.

HTTPie примечателен читаемостью вывода. В отличие от curl, он не вываливает в терминал массу информации о SSL-сертификате. Убер-фича HTTPie — выделение цветом не только всех заголовков, но и тела ответа в соответствии с типом полученного документа, да ещё и корректная идентация тела ответа — JSON, слепленный сервером в одну длинную неудобочитаемую строку, превращается в красоту на прикреплённом скриншоте. httpie2_1-20219-781666.png К слову о SSL, если вы тестируете ваш веб-сервис у себя на localhost с самоподписанным сертификатом, заставить HTTPie не проверять его валидность можно ключом --verify=no.

HTTPie способен "понимать" JSON не только в теле ответа, но и в качестве входных данных: передадим нашему API POST-запрос с телом, в котором находится JSON-объект с именем пользователя:

http POST localhost:8080/api/register first_name=Vasya last_name=Pupkin

Также можно записать JSON-представление объекта в простой текстовый файл и передать его на стандартный ввод HTTPie следующим образом:

http POST localhost:8080/api/register < vasya.txt

Комбинирование HTTPie с оператором перенаправления ввода-вывода | открывает богатые возможности его использования в скриптах в неинтерактивном режиме.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто