Руководство для начинающих по созданию нашего первого сервера GraphQL с Apollo и TypeORM
В последние несколько лет популярность GraphQL очень быстро растет, и многие крупные компании начали применять эту технологию для создания своих API.
Цель этого руководства - предоставить основные шаги для создания сервера NodeJS GraphQL с использованием действительно мощного стека, включающего Apollo, TypeORM и TypeScript.
Давай начнем!
Для этого руководства я выбрал postgres, но TypeORM поддерживает все наиболее часто используемые драйверы баз данных.
Если вы хотите углубиться в TypeORM: https://typeorm.io/#/
- Загрузите и установите базу данных postgres: https://www.postgresql.org/
Внутри папки PostgreSQL [v] мы можем найти p gAdmin, самую популярную платформу администрирования для PostgreSQL. Отсюда мы можем легко управлять серверами и базами данных.
- Создайте базу данных из pgAdmin, имя и информация о соединении будут использоваться в ormconfig.json позже.
Самый быстрый способ начать - использовать Typeorm CLI для создания стартового проекта.
- Установить TypeORM глобально:
npm install typeorm -g
- Внутри каталога, в котором мы хотим создать проект, выполните следующую команду TypeORM:
typeorm init --name apollo-server-boilerplate --database postgres
Это должно создать и поддержать следующую структуру проекта…
… И следующий package.json:
Мы можем использовать библиотеку npm-check-updates для проверки и обновления библиотек:
https://www.npmjs.com/package/npm-check-updates
- Установить зависимости:
yarn install
- Добавить пакеты:
yarn add express graphql apollo-server-express
- Добавьте типы:
yarn add -D [@]types/express [@]types/graphql
- Обновите ormconfig.json
Файл ormconfig.json - это точка входа для TypeORM. Здесь мы можем указать конфигурации для подключения и сопоставить ORM с базой данных. Для целей этого руководства мы должны изменить только поля имени пользователя, пароля и базы данных в соответствии с нашей личной конфигурацией.
- Обновите tsconfig.json
Следующий сценарий должен настроить параметры компилятора прав для TypeScript.
Теперь мы готовы к настройке Apollo Server.
- Добавьте typeDefs.ts и resolvers.ts
В папке src мы можем создать 2 файла:
1) typeDefs.ts - ›Построить схему с использованием языка схем GraphQL
2) resolvers.ts -› Предоставить функции преобразователей для наших полей схемы
В реальном сценарии для больших приложений мы можем структурировать проект с модулями на основе домена и создать схему и преобразователь для каждого модуля.
Для этого руководства я создаю следующие файлы просто в качестве небольшого примера.
Как видите, в файле typeDefs.ts мы определяем наши типы и структуры API, а в файле resolvers.ts мы реализуем функции для нашей схемы.
В приведенном выше примере мы выполняем чтение (запрос) и создание (мутацию) в базе данных с помощью функций TypeORM.
- Откройте файл src / index.ts. Мы можем удалить весь контент и заменить что-то вроде этого:
Здесь мы создаем экземпляр ApolloServer, открываем соединение с базой данных и запускаем сервер NodeJS.
- Начальный сервер:
yarn start
- Открытая площадка GraphQL:
http: // localhost: 4000 / graphq l - Проверить мутацию и запрос
Наслаждаться ;)
Вот полный код на git:
https://github.com/peppinho89/apollo-server-boilerplate
Другие полезные ссылки:
- TypeORM: https://typeorm.io/#/
- GraphQL: https://graphql.org/ прев
- Сервер Apollo: «https://github.com/apollographql/apollo-server