Что нужно сделать, чтобы исправить ошибку GraphQLError: Query root type must be provided?

Привет! У меня возникла проблема в коде GraphQL, где при попытке выполнить операцию `sign in` вылезает ошибка "GraphQLError: Query root type must be provided". Я определил операцию `sign in` как Mutation, но автосхема GraphQL генерирует ее как Query. Вот кусочек кода:

```typescript
@Mutation(() => SignResponse)
  signIn(signInInput: SignInInput) {
    return this.authService.signIn(signInInput);
  }

@InputType()
export class SignInInput {
  @IsEmail({}, { message: "email must be an email" })
  @IsNotEmpty()
  @Field(type => String)
  email: string;

  @MinLength(6, { message: "Password must be at least 6 characters long" })
  @IsString()
  @IsNotEmpty()
  @Field(type => String)
  password: string;
}
```

Мне нужна помощь разобраться, почему GraphQL автоматически определяет операцию `sign in` как Query вместо Mutation, так как я указал `@Mutation`. Если у вас есть вопросы или требуются дополнительные пояснения, буду рад их предоставить.
  • 27 февраля 2024 г. 16:29
Ответы на вопрос 1
Для исправления ошибки "GraphQLError: Query root type must be provided" необходимо убедиться, что операция `sign in` правильно определена как Mutation в вашем резолвере. 

Одной из возможных причин такой ошибки может быть неправильное использование декоратора `@Resolver()` для вашего класса резолвера. Убедитесь, что вы правильно указали тип операции в декораторе `@Mutation()`:

```typescript
@Resolver()
export class AuthResolver {
  @Mutation(() => SignResponse)
  async signIn(@Args('input') signInInput: SignInInput): Promise<SignResponse> {
    return this.authService.signIn(signInInput);
  }
}
```

Также убедитесь, что вы используете правильные декораторы для аргументов метода `signIn`, например `@Args()` для обработки входных данных.

После внесения этих изменений перезапустите сервер GraphQL и попробуйте выполнить операцию `sign in`. Это должно помочь исправить ошибку и правильно определить операцию как Mutation. Если проблема остается, пожалуйста, проверьте остальной код и конфигурацию сервера GraphQL.
Похожие вопросы