InputType
import { Field, InputType } from '@nestjs/graphql'; @InputType() export class CreateRestaurantDto { @Field((type) => String) name: string; @Field((typu) => Boolean) isVegan: boolean; @Field((type) => String) address: string; @Field((type) => String) ownerName: string; }
import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { Restaurant } from './entities/restaurant.entity'; import { CreateRestaurantDto } from './dtos/create-restaurant.dto'; @Resolver((of) => Restaurant) // entity 가져옴 export class RestaurantResolver { @Mutation((returns) => Boolean) createRestaurant( @Args('createRestaurantInput') createRestaurantInput: CreateRestaurantDto, ): boolean { return true; } }

인자명을 먼저 써줘야 한다는 불편함이 있다.
mutation{ createRestaurant(createRestaurantInput:{ name: "asdf", isVegan: true, address: "asdf", ownerName: "asdf" }) }
ArgsType
import { ArgsType, Field, InputType } from '@nestjs/graphql'; @ArgsType() export class CreateRestaurantDto { @Field((type) => String) name: string; @Field((typu) => Boolean) isVegan: boolean; @Field((type) => String) address: string; @Field((type) => String) ownerName: string; }
import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { Restaurant } from './entities/restaurant.entity'; import { CreateRestaurantDto } from './dtos/create-restaurant.dto'; @Resolver((of) => Restaurant) // entity 가져옴 export class RestaurantResolver { @Mutation((returns) => Boolean) createRestaurant(@Args() createRestaurantDto: CreateRestaurantDto): boolean { return true; } }

인자명 없이 바로 오브젝트 내용을 담으면 된다.
mutation{ createRestaurant( name: "asdf", isVegan: false, address: "asdf", ownerName: "asdf" ) }