В этом видео мы собираемся сгенерировать 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, видео-преобразователь и видео-сервис.

Более подробно вы можете посмотреть видео ниже. Спасибо!