Строить схемы GraphQL с фиктивными данными довольно просто.

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

Это означает, что вы настраиваете свой сервер, определяете свою схему, добавляете несколько поддельных преобразователей, и все готово. Фактически, называть их поддельными резолверами вводит в заблуждение: вы просто пишете настоящие резолверы, которые возвращают фиктивные данные. Взгляните на этот пример на основе Apollo Server:

Каким бы простым это ни казалось, это может стать довольно утомительным, если у вас большая схема или если вы хотите выполнять итерацию как можно быстрее. Но не волнуйтесь. Аполлон прикрывает вашу спину.

Аполлон издевается

Сервер Apollo поставляется с насмешливой поддержкой. Параметр mocks заставляет сервер использовать макет по умолчанию для каждого возможного типа примитива.

Вы можете дополнительно настроить макеты, передав набор преобразователей типов (никому не нравится, что их любимые джедаи называются «Hello World») и использовать класс MockList для определения поведения поддельных массивов данных:

Пошаговое издевательство

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

Гибкость и скорость

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

В GraphQL легко насмехаться. Мокинг с помощью моков сервера Apollo еще проще.