В этом видео мы собираемся сгенерировать API GraphQL с помощью Nest JS.
Nest JS - это платформа Node.js, которая полностью поддерживает TypeScript (но при этом позволяет разработчикам кодировать на чистом JavaScript) и сочетает в себе элементы ООП (объектно-ориентированное программирование), FP (функциональное программирование) и FRP (функциональное реактивное программирование).
Чтобы сгенерировать GraphQL API с помощью NestJS, мы собираемся создать новое приложение с нуля, используя NestJS CLI, которое мы можем установить следующим образом: npm i -g @nestjs/cli
Затем мы можем использовать Nest JS CLI для создания нового приложения:
nest new nestjs-graphql
cd nestjs-graphql
А затем нам нужно установить несколько серверных библиотек GraphQL и Apollo.
npm i --save @nestjs/graphql graphql-tools graphql apollo-server-express npm i --save class-validator
Библиотека «класс-валидатор» позволит нам проверить ввод на наличие мутаций.
Схема GraphQL, которая будет источником для создания API, будет:
type Video { id: ID! title: String! url: String! author: User! } type User { id: ID! name: String! } type Query { videos: [Video!]! } input NewVideo { title: String! url: String! userId: String! } type Mutation { createVideo(input: NewVideo!): Video! }
Принимая эту схему в качестве входных данных, сценарий generate-typings.ts (ниже) собирается создать классы TypeScript, которые будут использоваться приложением.
Это команды для создания классов в TypeScript из схемы GraphQL:
tsc src/generate-typings.ts node src/generate-typings.js
Когда у нас есть эти классы, мы можем работать над новым видеомодулем, который будет включать видео DTO, видео-преобразователь и видео-сервис.
Более подробно вы можете посмотреть видео ниже. Спасибо!