В этом блоге я расскажу о настройке супер простого сервера Apollo, сначала настроив ваши определения типов и преобразователи, которые позволят вам выполнять запросы и изменять. Перед тем как начать, убедитесь, что у вас установлена последняя версия node и npm.
Перво-наперво, давайте создадим каталог, в котором мы будем работать. Внутри вашего терминала cd
в какой-то рабочий каталог и создадим новую папку:
mkdir apollo-server-qs
Убедитесь, что cd
в папку apollo-server-qs
, и выполните следующую команду:
npm init -y
Давайте также быстро создадим пару файлов в одном рабочем каталоге:
touch index.js schema.js resolvers.js
Теперь, когда у нас есть файлы, с которыми мы будем работать, давайте установим соответствующие пакеты, необходимые для Apollo Server и GraphQL:
npm install apollo-server graphql
А внутри нашего файла index.js напишем следующий код:
Довольно круто, да? Ладно, ладно… немногое происходит, но это базовая настройка сервера Apollo, но теперь нам нужно настроить и заработать наши определения типов и преобразователи!
Сначала давайте начнем с наших определений типов. У нас будет базовая Project
схема, в которой пользователь может получить список проектов, получить отдельный проект или создать новый проект. Обычно у нас есть какая-то база данных, с которой можно поговорить, но в этом примере мы будем жестко кодировать некоторые вещи.
Внутри нашего schema.js
файла напишите следующий код:
И, кстати, для подсветки синтаксиса можно установить расширение GraphQL for VSCode
.
Теперь мы можем начать с наших резолверов. Внутри нашего resolver.js
файла напишите следующий код:
Как видите, мы жестко запрограммировали список наших проектов, но в реальном сценарии мы будем разговаривать с какой-то базой данных. Это также означает, что мы будем иметь дело с асинхронными данными, и мы можем легко справиться с этим, используя async / await
:
const resolvers = { Query: { getProjects: async () => {await ...}, } }
А теперь, если мы запустим наш сервер и перейдем к localhost:4000
, мы сможем увидеть, как все части головоломки действительно сочетаются друг с другом!
Изначально у вас должно получиться что-то вроде этого:
Довольно аккуратно, правда? Хорошо, давайте посмотрим, как мы можем получить наш список проектов. Напишите следующие строки:
А теперь нажмите кнопку воспроизведения!
Потрясающие! А теперь давайте возьмем один проект:
Чертовски круто, да? Хорошо, теперь давайте представим, что создаете новый проект:
Отлично! Это базовая установка для создания сервера Apollo с запросами и изменениями.
Возможно, в следующем блоге мы рассмотрим подключение к базе данных и собственно работу с асинхронными данными! Надеюсь, вам понравилось это чтение, и увидимся в следующий раз!