10 апреля 2021
Тэги: gradle, GraphQL, json, Kotlin, Spring Boot.
В статье Обработка запросов с помощью GraphQL мы рассмотрели основные вопросы, связанные с выполнением запросов в GraphQL. До этого момента мы составляли запросы вручную в формате json и напрямую кидали их на сервер. Но не всегда под рукой есть удобный инструмент для выполнения POST-запросов. Кроме того, вы можете в принципе не знать, какие поля и методы GraphQL доступны на сервере. Поэтому к GraphQL можно прикрутить один из нескольких веб-интерфесов, который позволит выполнять тестовые запросы в наглядном виде.
Для примера возьмём такой инструмент как Playground. Просто добавим ещё одну зависимость playground-spring-boot-starter в уже существующий проект, который мы создали в прошлой статье.
И этого достаточно, чтобы по адресу http://127.0.0.1:8080/playground появился веб-интерфейс, который автоматически будет отображать информацию о нашей GraphQL схеме. Разумеется, эндпоинт вы при желании можете переопределить в настройках.
Справа вы можете увидеть две вертикальные вкладки. Вкладка DOCS показывает все доступные запросы и типы, которые в этих запросах используются. Вкладка SCHEMA фактически отображает содержимое нашего .graphqls файла.
Интерфейс playground состоит из двух полей. В левом поле вы пишете запрос, в середине нажимаете кнопку для выполнения запроса и в правом вы увидите результат запроса. Давайте в левом поле напишем следующий запрос:
По мере написания запроса playground предлагает вам автодополнение параметров. Также мы видим, что этот формат немного отличается от того формата, который мы напрямую кидали в POST-запросе в прошлой статье.
Помимо самих имён параметров playground может также отображать описания для них. Это описание нам следует добавить в файл .graphqls. Просто добавим описание над каждым полем и методом после символа #.
После того, как мы отредактируем файл и перезапустим проект, описания появятся в playground.
Kotlin, Java, Java 11, Java 8, Spring, Spring Boot, Spring Data, SQL, PostgreSQL, Oracle, Linux, Hibernate, Collections, Stream API, многопоточность, файлы, Nginx, Apache, maven, gradle, JUnit, YouTube, новости, руководство, ООП, алгоритмы, головоломки, rest, GraphQL, Excel, XML, json, yaml.