چگونه GraphQL API را در Nest JS ایجاد کنیم؟ دستورالعمل های گام به گام!

ایجاد یک GraphQL API در NestJS شامل چندین مرحله است. در اینجا یک راهنمای نظری گام به گام آورده شده است:
مرحله 1: یک پروژه NestJS جدید راه اندازی کنید
- Nest CLI را نصب کنید:
npm install -g @nestjs/cli
- یک پروژه جدید ایجاد کنید:
nest new project-name
- به دایرکتوری پروژه بروید:
cd project-name
مرحله 2: GraphQL و Apollo Server را نصب کنید
- بسته های مورد نیاز را نصب کنید:
npm install @nestjs/graphql graphql apollo-server-express
مرحله 3: ماژول GraphQL را پیکربندی کنید
-
یک پیکربندی ماژول GraphQL ایجاد کنید: باز کن
src/app.module.ts
و ماژول GraphQL را پیکربندی کنید:
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { join } from 'path';
@Module({
imports: [
GraphQLModule.forRoot({
autoSchemaFile: join(process.cwd(), 'src/schema.gql'),
}),
],
})
export class AppModule {}
مرحله 4: یک Resolver ایجاد کنید
- یک Resolver ایجاد کنید: از Nest CLI برای ایجاد یک حلکننده استفاده کنید:
nest g resolver user
-
منطق Resolver را تعریف کنید: باز کن
src/user/user.resolver.ts
و منطق حل کننده را تعریف کنید:
import { Resolver, Query, Mutation, Args } from '@nestjs/graphql';
import { UserService } from './user.service';
import { User } from './user.entity';
import { CreateUserInput } from './dto/create-user.input';
@Resolver(of => User)
export class UserResolver {
constructor(private readonly userService: UserService) {}
@Query(returns => [User])
async users() {
return this.userService.findAll();
}
@Mutation(returns => User)
async createUser(@Args('createUserInput') createUserInput: CreateUserInput) {
return this.userService.create(createUserInput);
}
}
مرحله 5: یک سرویس ایجاد کنید
- یک سرویس ایجاد کنید: از Nest CLI برای ایجاد یک سرویس استفاده کنید:
nest g service user
-
پیاده سازی منطق خدمات: باز کن
src/user/user.service.ts
و منطق سرویس را پیاده سازی کنید:
import { Injectable } from '@nestjs/common';
import { User } from './user.entity';
import { CreateUserInput } from './dto/create-user.input';
@Injectable()
export class UserService {
private users: User[] = [];
findAll(): User[] {
return this.users;
}
create(createUserInput: CreateUserInput): User {
const user = { ...createUserInput, id: Date.now().toString() };
this.users.push(user);
return user;
}
}
مرحله 6: طرحواره GraphQL و DTO را تعریف کنید
-
طرحواره GraphQL و DTO ایجاد کنید: ایجاد کنید
src/user/user.entity.ts
:
import { ObjectType, Field, ID } from '@nestjs/graphql';
@ObjectType()
export class User {
@Field(type => ID)
id: string;
@Field()
name: string;
@Field()
email: string;
}
ایجاد کنید src/user/dto/create-user.input.ts
:
import { InputType, Field } from '@nestjs/graphql';
@InputType()
export class CreateUserInput {
@Field()
name: string;
@Field()
email: string;
}
مرحله 7: به روز رسانی ماژول
-
ماژول را بهروزرسانی کنید تا Resolver و Service را در بر بگیرد: باز کن
src/user/user.module.ts
و آن را به روز کنید:
import { Module } from '@nestjs/common';
import { UserService } from './user.service';
import { UserResolver } from './user.resolver';
@Module({
providers: [UserService, UserResolver],
})
export class UserModule {}
مرحله 8: ماژول کاربر را یکپارچه کنید
-
ماژول کاربر را در ماژول برنامه ادغام کنید: باز کن
src/app.module.ts
و آن را به روز کنید:
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { join } from 'path';
import { UserModule } from './user/user.module';
@Module({
imports: [
GraphQLModule.forRoot({
autoSchemaFile: join(process.cwd(), 'src/schema.gql'),
}),
UserModule,
],
})
export class AppModule {}
مرحله 9: برنامه را اجرا کنید
- برنامه NestJS را راه اندازی کنید:
npm run start:dev
مرحله 10: GraphQL API را آزمایش کنید
-
به زمین بازی GraphQL دسترسی پیدا کنید: هدایت به
http://localhost:3000/graphql
برای دسترسی به زمین بازی GraphQL و آزمایش API خود با اجرای کوئری ها و جهش ها.
این راهنما یک رویکرد اساسی برای ایجاد یک GraphQL API در NestJS ارائه می دهد. شما می توانید آن را بیشتر گسترش داده و بر اساس نیازهای برنامه خود سفارشی کنید.
سلب مسئولیت: این محتوا توسط هوش مصنوعی تولید شده است.