HTTPie (произносится как aitch-tee-tee-pie) — HTTP-клиент командной строки. Его цель — сделать взаимодействие CLI с веб-сервисами максимально удобным для человека. HTTPie предназначен для тестирования, отладки и общего взаимодействия с API и HTTP-серверами. Команды HTTP и HTTPS позволяют создавать и отправлять произвольные HTTP-запросы. Они используют простой и естественный синтаксис и обеспечивают форматированный и раскрашенный вывод.

Stars: 24.3k
Platforms: Windows, Linux, macOS
License: BSD-3-Clause
Languages: Python(92.4%), Roff(5.1%)
Link: https://github.com/httpie/httpie

Основные характеристики

  • Выразительный и интуитивно понятный синтаксис
  • Отформатированный и цветной вывод терминала
  • Встроенная поддержка JSON.
  • Формы и загрузка файлов
  • HTTPS, прокси и аутентификация
  • Произвольные данные запроса
  • Пользовательские заголовки
  • Постоянные сеансы
  • Wget-подобные загрузки
  • Поддержка Linux, macOS, Windows и FreeBSD
  • Плагины
  • Документация
  • Тестовое покрытие

Применение

Сводка:

http [flags] [METHOD] URL [ITEM [ITEM]]

Использование:

http
usage: http
    [--json] [--form] [--multipart] [--boundary BOUNDARY]
    [--raw RAW] [--compress]
    [--pretty {all,colors,format,none}] [--style STYLE]
    [--unsorted] [--sorted] [--response-charset ENCODING]
    [--response-mime MIME_TYPE]
    [--format-options FORMAT_OPTIONS] [--print WHAT]
    [--headers] [--meta] [--body] [--verbose] [--all]
    [--history-print WHAT] [--stream] [--output FILE]
    [--download] [--continue] [--quiet]
    [--session SESSION_NAME_OR_PATH |
    --session-read-only SESSION_NAME_OR_PATH]
    [--auth USER[:PASS] | TOKEN]
    [--auth-type {basic,bearer,digest,edgegrid}]
    [--ignore-netrc] [--offline]
    [--proxy PROTOCOL:PROXY_URL]
    [--follow] [--max-redirects MAX_REDIRECTS]
    [--max-headers MAX_HEADERS] [--timeout SECONDS]
    [--check-status] [--path-as-is] [--chunked]
    [--verify VERIFY] [--ssl {ssl2.3,tls1,tls1.1,tls1.2}]
    [--ciphers CIPHERS] [--cert CERT] [--cert-key CERT_KEY]
    [--ignore-stdin] [--help] [--version] [--traceback]
    [--default-scheme DEFAULT_SCHEME] [--debug]
    [METHOD] URL [REQUEST_ITEM ...]
http: error: the following arguments are required: URL

Примеры

  • Пользовательский метод HTTP, заголовки HTTP и данные JSON:
$ http PUT pie.dev/put X-API-Token:123 name=John
  • Отправка форм:
$ http -f POST pie.dev/post hello=World
  • Посмотрите запрос, который отправляется, используя один из вариантов вывода:
$ http -v pie.dev/get
  • Создайте и распечатайте запрос, не отправляя его в автономном режиме:
$ http --offline pie.dev/post hello=offline
  • Используйте GitHub API, чтобы опубликовать комментарий к проблеме с аутентификацией:
$ http -a USERNAME POST https://api.github.com/repos/httpie/httpie/issues/83/comments body='HTTPie is awesome! :heart:'
  • Загрузите файл, используя перенаправленный ввод:
$ http pie.dev/post < files/data.json
  • Загрузите файл и сохраните его через перенаправленный вывод:
$ http pie.dev/image/png > image.png
  • Скачать файл wget стиля:
$ http --download pie.dev/image/png
  • Используйте именованные сеансы, чтобы сделать определенные аспекты связи постоянными между запросами к одному и тому же хосту:
$ http --session=logged-in -a username:password pie.dev/get API-Key:123
$ http --session=logged-in pie.dev/headers
  • Установите собственный заголовок Host, чтобы обойти отсутствующие записи DNS:
$ http localhost:8000 Host:example.com

HTTPie Веб-приложение и настольное приложение

Все удобство версии Terminal теперь заключено в гладком графическом интерфейсе.

Генерация команды HTTPie

Вы можете экспортировать код и команды для многих других языков и инструментов, включая столь востребованные cURL, HAR, JavaScript, Node, Java, PHP, Objective-C, Swift, Python, Ruby, C#, Go, OCaml и другие.

Организуйте свою работу в пространствах, коллекциях и вкладках

Spaces (сокращение от workspaces) — это контейнеры для ваших проектов. Каждое пространство — это отдельная вселенная с библиотекой, коллекциями, сохраненными запросами, черновиками, открытыми вкладками и переменными. Вы можете создать столько пространств, сколько вам нужно.

Параметризация запросов с помощью переменных и окружений

Определите переменные на вкладке сведений о текущем пространстве. Затем вы можете ссылаться на них из любого запроса или коллекции в пространстве через {{NAME}}.

Пометьте переменную как секретную, и мы замаскируем ее значения в списке переменных, чтобы вы случайно не передали их при вызове Zoom.

Среды позволяют быстро переключаться между различными контекстами. Обычной практикой является запуск API в разных средах. Вы можете создать столько сред, сколько захотите, и переключаться между ними с помощью меню в правом верхнем углу приложения.

Автосохранение и синхронизация в реальном времени

Если вы не находитесь в режиме инкогнито, ваши данные сохраняются и синхронизируются между вашими устройствами. Когда вы что-то меняете, это мгновенно обновляется на других ваших клиентах. И вам не нужно беспокоиться о том, чтобы нажать кнопку «Сохранить», потому что она постоянно автоматически сохраняет вашу работу.

Поиск в любом сообщении

С помощью поиска вам не будет казаться, что вы ищете иголку в стоге сена. Поиск доступен везде, где может появиться длинный контент: в основном редакторе и на панелях предварительного просмотра, запросов и ответов.

Быстро переключать предварительный просмотр ответа

Когда сервер отправляет обратно тип ответа, для которого есть удобный режим предварительного просмотра, например HTML, мы визуализируем ответ, чтобы его было легче переварить.

Ускорьте навигацию по API с интерактивными URL-адресами

Для HTTPie вполне естественно сделать URL-адреса интерактивными, чтобы вы, как человек, могли также удобно работать с API. HTTPie делает URL-адреса интерактивными во всех контекстах, включая редактор тела запроса, заголовки и другие места, где можно ожидать появления URL-адресов.

Если вам нравится то, что вы читаете, подумайте о том, чтобы присоединиться к Medium и прочитать еще много статей. Часть вашего гонорара идет на поддержку таких авторов, как я. Нажмите здесь, чтобы присоединиться.