У меня есть запрос 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 .