Привет, мир API! После запуск в публичной бета-версии ранее в этом месяце мы вернулись с новыми новостями о HTTPie для Интернет & Рабочий стол. Ознакомьтесь с улучшениями тестирования API, которые мы добавили v2022.12.0
а также v2022.13.0 с тех пор 👇


🔖 Резюме


🚀 Поддержка API GraphQL

ГрафQL — популярный язык запросов API, созданный в Facebook. Он предназначен для помощи в разработке строго типизированных API-интерфейсов, которые дают клиентам возможность запрашивать именно те данные, которые им нужны, при минимизации количества запросов.

Под капотом запросы GraphQL — это обычные запросы POST. Это означает, что всегда можно было общаться с конечными точками GraphQL с помощью HTTPie, хотя и неэлегантно: вы просто делаете запрос JSON POST с телом, включающим запрос GraphQL и переменные.

Но теперь мы представляем встроенную поддержку создания запросов GraphQL, чтобы улучшить ваше взаимодействие с API-интерфейсами GraphQL.

Поддержка GraphQL API в HTTPie

При определении запроса выберите «GraphQL» в качестве типа тела. Затем отдельно укажите запрос GraphQL и переменные JSON. Вы получаете подсветку синтаксиса и другие функции, характерные для каждого языка. И, конечно же, вы можете ссылаться на свой пространственные переменные в обоих редакторах.

Поддержка GraphQL помечена как бета-версия, поскольку мы продолжаем работать над поддержкой схемы и другими улучшениями.


✏️ Используйте пользовательские методы HTTP в своих запросах

Чтобы упростить пользовательский интерфейс, мы включаем в селектор только самые распространенные HTTP-методы (GET, POST, HEAD, PUT, PATCH, DELETE, OPTIONS).

Обычно это все, что вам нужно при работе с обычными REST, GraphQL и HTTP API. Однако существуют и другие, менее популярные, методы HTTP, такие как COPY, TRACE и т. д. И API-интерфейсы также могут вводить пользовательские методы.

При тестировании API, использующих нетрадиционные методы HTTP, теперь вы можете дополнить список по умолчанию методом по вашему выбору.

Метод Custom_HTTP

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


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

URL-адреса являются одним из основных строительных блоков Интернета, а ссылки и гипертекст были с нами со времен Web 1.0. Теперь, в эпоху API, у них появляется совершенно новая цель — позволить машинам перемещаться по различным ресурсам, предоставляемым через API.

Поэтому вполне естественно, что HTTPie делает их интерактивными, чтобы вы, как человек, могли также удобно работать с API. А теперь они!

Интерактивные URL-адреса

Кликабельные ссылки имеют тонкое подчеркивание. Когда вы обнаружите один из них, щелкните его, удерживая нажатой клавишу «Control» (нажмите «⌘» в macOS) или щелкните его правой кнопкой мыши, чтобы открыть меню с параметрами URL-адреса.

Все ссылки предлагают скопировать URL и открыть его в браузере. Ссылки в ответе дополнительно предлагают несколько ярлыков для создания нового запроса с использованием заданного URL-адреса:

  • «Создать новый черновик» создает новый черновик с этим URL.
  • «Дублировать как черновик» создает новый черновик, который является полной копией текущего запроса (т. е. со всеми вашими заголовками, телом запроса, аутентификацией и т. д.) при использовании нового URL-адреса.
  • «Дубликат в коллекции» делает копию текущего запроса с новым URL-адресом рядом с оригиналом; доступно, только если текущий запрос принадлежит коллекции.

Помимо полных URL-адресов, мы также делаем относительные, например /api/users интерактивный. Чтобы сгенерировать полный URL-адрес, мы добавляем к относительному префикс базового URL-адреса запроса.

Видное место для интерактивных ссылок — тело ответа. Но вам не нужно обращаться к полнофункциональному REST API Hypermedia, чтобы воспользоваться преимуществами этой функции. HTTPie делает URL-адреса интерактивными во всех контекстах, включая редактор тела запроса, заголовки и другие места, где можно ожидать появления URL-адресов.


📯 Отправляйте запросы быстрее с автоматическим переключением POST

Когда вы добавляете тело запроса, маловероятно, что метод GET по умолчанию — это то, что вам нужно. В GET-запросах, содержащих тело, нет ничего плохого, но они редко бывают полезны. Наиболее распространенным способом отправки данных является POST.

Итак, теперь мы автоматически переключаем ваш запрос на POST, как только вы добавляете тело, если оно все еще имеет метод GET по умолчанию. Вы всегда можете отменить это действие, и HTTPie отправит тело через GET.

Добавьте тело к вашему запросу, и мы автоматически переключимся на POST

Случайная отправка данных без изменения метода — распространенная человеческая ошибка, и эта функция предназначена для того, чтобы избавить вас от разочарования и запутанных результатов. Он также имитирует поведение HTTPie для терминала.


🖼 У HTTPie для Интернета новый значок

HTTPie для Интернета теперь использует зеленый значок приложения в качестве фавиконки. Это упрощает различение вкладок браузера с веб-сайтом HTTPie и веб-приложением.

Новый значок

Ознакомьтесь с новым значком и улучшенным внешним видом обмена на httpie.io/app. Или используйте короткий и сладкий требуется новый.


💆‍♀️ Укажите заголовки без головной боли

Мы улучшили проверку имен и значений заголовков HTTP. Теперь вы можете увидеть, содержат ли они какие-либо запрещенные символы, прямо в форме, а не после отправки запроса.


🪲 Улучшения стабильности и исправления ошибок

  • В настольном приложении macOS перетаскивание строки заголовка было нарушено при открытии многих вкладок. Теперь его всегда можно перетащить.
  • Говоря о вкладках… Был пограничный случай, приводивший к мерцанию визуальной вкладки. Надеюсь, вы не столкнулись с этим.
  • Знаете ли вы, что можете легко переключиться с формы с кодировкой URL на составную и наоборот? Когда вы переключаетесь обратно на URL-кодировку с прикрепленным двоичным файлом, появляется диалоговое окно с предупреждением. Вы не могли закрыть это предупреждение раньше, но теперь вы можете, уфф!
  • Когда вы вошли в систему и не в сети, синхронизация приостанавливается. Когда вы вернетесь в Интернет, он возобновится. Однако приложение продолжало ошибочно указывать на сетевую ошибку. Теперь очищается как надо.
  • Мы исправили несколько шероховатостей в синтаксисе строки URL и добавили более детальную подсветку.
  • Исправлена ​​возможная проблема двойной отправки в диалоговом окне «Создать среду».
  • Удалено непреднамеренное ограничение размера тела запроса в 10 МБ.


🤗 Удачного тестирования API и до новых встреч!