Как создать GraphQL API с Apollo Server

8 минут чтения

GraphQL — это мощный инструмент для работы с API, который предоставляет клиентам возможность запрашивать именно те данные, которые им нужны. Одним из популярных инструментов для создания GraphQL API является Apollo Server. В этой статье мы рассмотрим, как создать GraphQL API с помощью Apollo Server.

Установка и настройка

Для начала, давайте установим необходимые пакеты. Создайте новый проект и выполните следующие команды:

mkdir my-graphql-api
cd my-graphql-api
npm init -y
npm install apollo-server graphql

После установки пакетов, создайте файл index.js, который будет содержать основной код нашего сервера.

Определение схемы

Схема GraphQL определяет структуру данных, которые могут быть запрошены или изменены с помощью API. В файле index.js добавьте следующий код для определения схемы:

const { ApolloServer, gql } = require('apollo-server');
 
// Определяем типы и запросы
const typeDefs = gql`
  type Query {
    hello: String
  }
`;
 
// Определяем резолверы
const resolvers = {
  Query: {
    hello: () => 'Hello, world!',
  },
};
 
// Создаем экземпляр Apollo Server
const server = new ApolloServer({ typeDefs, resolvers });
 
// Запускаем сервер
server.listen().then(({ url }) => {
  console.log(`🚀  Server ready at ${url}`);
});

В этом примере мы определили простую схему с одним запросом hello, который возвращает строку "Hello, world!".

Запуск сервера

Теперь мы готовы запустить наш сервер. В терминале выполните команду:

node index.js

Вы увидите сообщение, что сервер готов и работает по определенному URL. Перейдите по этому адресу в браузере, и вы увидите интерфейс GraphQL Playground, где можно тестировать запросы.

Расширение схемы

Давайте добавим несколько типов и запросов к нашей схеме. Обновите файл index.js следующим образом:

const { ApolloServer, gql } = require('apollo-server');
 
// Определяем типы и запросы
const typeDefs = gql`
  type Book {
    title: String
    author: String
  }
 
  type Query {
    books: [Book]
  }
`;
 
// Пример данных
const books = [
  {
    title: 'The Awakening',
    author: 'Kate Chopin',
  },
  {
    title: 'City of Glass',
    author: 'Paul Auster',
  },
];
 
// Определяем резолверы
const resolvers = {
  Query: {
    books: () => books,
  },
};
 
// Создаем экземпляр Apollo Server
const server = new ApolloServer({ typeDefs, resolvers });
 
// Запускаем сервер
server.listen().then(({ url }) => {
  console.log(`🚀  Server ready at ${url}`);
});

Теперь наша схема включает тип Book и запрос books, который возвращает массив книг. Обновите свой сервер и протестируйте новый запрос в GraphQL Playground:

{
  books {
    title
    author
  }
}

Заключение

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

8 минут чтения

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний