Запрос Apollo GraphQL не читает строковые переменные - PullRequest
0 голосов
/ 13 июля 2020

У меня есть запрос GraphQL, который выполняется на игровой площадке по адресу https://dev.schandillia.com/graphql.

Чтобы выполнить здесь любой запрос, вам понадобится следующий токен-носитель как часть http_headers :

{
  "Authorization": "bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVkOWVlNDBhNDYyMGNiMzBiZjdhZGVlMyIsImlzQWRtaW4iOnRydWUsImlhdCI6MTU5MzE3MzA1MSwiZXhwIjoxNTk1NzY1MDUxfQ.42yWHgpXlkPaeNqGNDyPKDAhbtGRz_MYfZrlZP2lF6U"
}

Вот мой запрос:

query posts($limit: Int!, $start: Int!) {
  posts(sort: "createdAt:DESC",
    limit: $limit,
    start: $start,
    where: {
      isPublished: true,
      title_contains: "random text"
    }) {
    id
    title
  }
}

Как видно, этот запрос принимает 2 переменные:

{
  "limit": 1,
  "start": 0,
}

Теперь, если вы замените random text с, скажем, Lorem, вы получите результаты, потому что существуют записи, содержащие это слово. Поиски с выражением random text возвращают пустой массив, потому что в его поле title нет записи с этим выражением.

Это ожидаемое поведение.

Теперь я хочу выполнить поиск значение динамики c. Итак, я сделал следующее:

query posts($limit: Int!, $start: Int!, $search_string: String!) {
  posts(
    sort: "createdAt:DESC",
    limit: $limit,
    start: $start,
    where: {
      isPublished: true,
      title_contains: $search_string,
    }) {
    id
    title
  }
}

Здесь я принимаю значение поиска через переменную, например:

{
  "limit": 1,
  "start": 0,
  "search_string": "random"
}

На этот раз переменная search_string полностью игнорируется и запрос возвращает только первую запись в базе данных, как будто предложение поиска никогда не существовало! Что я делаю не так?

PS Как бы то ни было, бэкэнд обслуживается Strapi v3.0.0 beta 17 .

...