Ошибка в предложении GraphQL where для Keystone 6

graphql #keystonejs

#graphql #keystonejs

Вопрос:

Я использую Keystone 6, который поставляется с последней версией Apollo. Обычно в GraphQL мы могли бы вставить простое предложение where со следующим утверждением:

 query {
  posts ( where: { title: "test" } ) {
    title
  }
}
 

Однако, попробовав это с Apollo Studio, я получаю следующую ошибку:

 Expected value of type "StringFilter", found "test".
 

Я пробовал различные способы исправить это, но, похоже, ничего не работает. Кто-нибудь из вас может помочь?

Спасибо.

Комментарии:

1. конкретная реализация, проверьте документы / спецификации для этого api

Ответ №1:

Ах, я знаю эту ошибку. Keystone 6 находится в стадии предварительной версии, и в API все еще иногда происходят критические изменения. Недавно были опубликованы некоторые изменения в структуре схемы GraphQL. Запуск более старого стиля запросов в новой схеме GraphQL приведет к появлению ошибки, которую вы видите.

В этом случае запрос может быть переписан как:

 query {
  posts ( where: { title: { equals: "test" } } ) {
    title
  }
}
 

В документах GraphQL Queries содержится больше инструкций и примеров использования. Существует также руководство по обновлению, в котором конкретно описаны все изменения, которые вам нужно будет внести в свои запросы до этого обновления.

Комментарии:

1. Спасибо. К сожалению, мне потребовалось много времени, чтобы это выяснить. Каким-то образом я не наткнулся на эти документы keystone, спасибо, что обратили на них мое внимание.