Все статьи

Построение инструмента для исследования GraphQL из терминала

·MAGMA

GraphQL — мощный язык запросов для API, но его исследование и тестирование часто требует использования внешних инструментов, таких как GraphQL Playground, Insomnia или Altair. Однако эти инструменты могут нарушить привычный рабочий процесс терминала, особенно когда вы уже работаете с сервером через SSH, запускаете конвейер CI или просто предпочитаете работать в командной строке.

Проблемы с инструментами на основе браузера

Каждый разработчик GraphQL знает о необходимости不断ного переключения между редактором кода и браузером для тестирования запросов. Этот процесс не только нарушает рабочий процесс, но и имеет более глубокие проблемы. Инструменты на основе браузера не интегрируются с оболочкой терминала, что означает, что вы не можете передавать ответы GraphQL в другие скрипты или использовать их в конвейерах. Кроме того, эти инструменты не работают через SSH и не могут быть использованы в скриптах для непрерывной интеграции и доставки (CI/CD).

Построение инструмента командной строки

Для решения этих проблем можно построить инструмент командной строки, который позволяет исследовать и тестировать GraphQL API непосредственно из терминала. Этот инструмент должен уметь интроспектировать любой конечный пункт GraphQL, позволять исследовать схему взаимодействия, выполнять запросы с автозаполнением, управлять заголовками аутентификации и сохранять часто используемые запросы.

Настройка проекта

Для начала необходимо создать новый проект и установить необходимые зависимости. Создайте папку для проекта и перейдите в нее, затем выполните команды инициализации проекта и установки зависимостей:

mkdir gql-explorer && cd gql-explorer
npm init -y
npm install graphql graphql-tag node-fetch@2 chalk inquirer ora cli-table3 conf commander readline-sync strip-ansi

Каждая из этих зависимостей играет важную роль в построении инструмента:

  • graphql и graphql-tag: парсинг и валидация запросов GraphQL
  • node-fetch: отправка HTTP-запросов к конечным пунктам GraphQL
  • chalk: подсветка синтаксиса для вывода JSON
  • inquirer: интерактивные подсказки и автозаполнение
  • ora: индикатор загрузки
  • cli-table3: форматирование таблиц схемы
  • conf: сохранение запросов и настроек
  • commander: парсинг аргументов командной строки

Создание точки входа

Создайте файл index.js и сделайте его исполняемым:

touch index.js
chmod +x index.js

Это будет основной файл инструмента, в котором будет реализована логика исследования и тестирования GraphQL API. Далее мы будем работать над реализацией этой логики и добавлением функций для инструмента.

Вернуться к блогу