Настольное приложение для изолирования GraphQL-подобных вызовов и ответов конечным точкам RESTful API

Трудно говорить о GraphQL или Apollo, не говоря о другом. С момента своего основания в 2016 году Apollo стал одним из ведущих клиентов, которые используют GraphQL в приложении.

Airbnb, Audi, CNBC и Expedia входят в число инженерных команд, которые Apollo рекламирует как внедряющие его технологию.

GraphQL славится своей скоростью и декларативными запросами; В отличие от REST API, запрос GraphQL возвращает именно то, что клиент запрашивает в одной конечной точке, повышая производительность для клиентов с плохим подключением к Интернету или менее мощными устройствами.

Но для реализации языка запросов требуется капитальный ремонт API, чтобы надлежащим образом обслуживать запросы GraphQL. Чтобы проверить запросы, разработчики должны быстро запустить приложение или написать бэкенд на GraphQL.

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

Вот тут-то и появляется Гипнос.

Что такое Гипнос?

Hypnos - это тестер конечных точек, использующий пакет Link-rest Apollo для создания запросов со структурой GraphQL к аутентифицированным или не аутентифицированным RESTful API.

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

Как это работает?

С пакетом link-rest клиент Apollo делает запрос на выборку для заданного API и пути. Получив ответ, клиент анализирует ответ, чтобы структурировать данные, аналогичные тем, которые будут возвращены из конечной точки GraphQL.

Хотя внутренние действия выполняются через обычные выборки в REST API, вместо громоздкого объекта в формате JSON с полями, не имеющими отношения к клиенту, данные анализируются в соответствии со спецификацией запроса.

Как помогает Гипнос

Apollo по своей сути не обрабатывает ошибки декларативно. Это действительно позволяет разработчикам обнаруживать ошибки с помощью пакета apollo-link-error любым способом, который они выберут.

Однако, если ошибка GraphQL записана неправильно (например, во внешнем интерфейсе), обратная связь может быть нечеткой. Hypnos выявляет синтаксические ошибки и четко описывает, в чем заключается ошибка в построении запроса.

Для GraphQL, если запрос правильно структурирован для допустимой конечной точки, он всегда будет выполняться и возвращать информацию и код состояния 200, даже если объявленные поля запроса возвращают значение null.

Чтобы помочь с этим, Hypnos анализирует данные ответа, чтобы проверить нулевые значения. Поскольку API-интерфейсы REST могут иметь намеренно нулевые значения, весь ответ по-прежнему отображается вместе с трассировкой стека, где существуют нулевые значения.

Команда Hypnos (Диллон Гаррет, Софи Най и Уилл Робинсон) очень гордится своим первым релизом. Если вас интересует Hypnos (v0.0.1-beta), посетите нашу страницу GitHub и попробуйте наше приложение.