Как создать GraphQL API с Apollo Server
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 для удовлетворения потребностей вашего приложения.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний