ОБНОВЛЕНИЕ: достаточно легко создать макет сервера с включенным CORS, используя непосредственно библиотеку Apollo Server, поэтому я решил отказаться от этой библиотеки.

Не так давно я пытался придумать, как заставить React и GraphQL хорошо работать вместе. Я хотел создать пару приложений для реагирования, чтобы узнать разницу между Relay Modern и React-Apollo. В этом процессе я столкнулся с необходимостью имитировать сервер GraphQL.

Мне нужно было довольно просто:

  • Сервер GraphQL со схемой и некоторыми преобразователями
  • Чтобы иметь возможность изменять контекст GraphQL для запросов с определенным заголовком
  • Чтобы включить CORS

На поиск нужных инструментов и библиотек для сборки сервера у меня ушло больше времени, чем я ожидал, поэтому я распаковал их в небольшую библиотеку: gql-mock-server.

API довольно прост:

По умолчанию конечная точка GraphQL - http://localhost:3002/graphql , и для нее включен CORS. Функция gql также принимает объект параметров в качестве второго аргумента:

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

Вот и все! Я надеюсь, что этот инструмент окажется для вас полезным и поможет вам в кратчайшие сроки начать играть с GraphQL.