HTTPie-length-fixed | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Python Developer. Professional
-3%
Разработчик на Spring Framework
-5%
iOS Developer. Professional
-8%
Golang Developer. Professional
-6%
Базы данных
-12%
Agile Project Manager
-5%
Android Developer. Professional
-11%
Microservice Architecture
-5%
C++ Developer. Professional
-5%
Highload Architect
-6%
JavaScript Developer. Basic
-8%
Backend-разработчик на PHP
-9%
Разработчик IoT
-13%
PostgreSQL
-8%
Подготовка к сертификации Oracle Java Programmer (OCAJP) Framework Laravel Cloud Solution Architecture Reverse-Engineering. Professional Архитектура и шаблоны проектирования Node.js Developer Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes iOS Developer. Basic Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool"
Инфраструктура
DevOps практики и инструменты
-12%
Базы данных
-12%
Network engineer. Basic
-10%
Network engineer
-4%
Экcпресс-курс «ELK»
-10%
Инфраструктурная платформа на основе Kubernetes
-6%
Administrator Linux.Basic
-10%
Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Дизайн сетей ЦОД
-13%
PostgreSQL
-8%
Разработчик программных роботов (RPA) на базе UiPath и PIX Reverse-Engineering. Professional Внедрение и работа в DevSecOps Administrator Linux. Advanced Infrastructure as a code in Ansible Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Экспресс-курс «IaC Ansible»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

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 комментариев
Для комментирования необходимо авторизоваться