Сложные булевы запросы Graphql - PullRequest
0 голосов
/ 11 декабря 2018

Я понимаю принципы запросов через graphql из документов, которые вы можете искать:

{
  "hero": {
    "name": "R2-D2"
  }
}

, но как насчет того, чтобы сделать что-то более сложное, например:

{
  "hero": {
    "name": "R2-D2 AND C-3PO AND BB-8 NOT K-2SO"
  }
}

есть ли способ передать строку, подобную этой, и получить соответствующие результаты?

1 Ответ

0 голосов
/ 12 декабря 2018

Нет, нет.

Вы можете прочитать GraphQL spec и посмотреть, что он делает, а что не определяет.В частности, спецификация не определяет какой-либо вид фильтрации, какой-либо язык выражений или какой-либо логический комбинатор.(Не существует встроенного способа сказать эквивалент SQL WHERE NAME='foo' без распознавателя полей, явно добавляющего его.)

То, что GraphQL допускает для аргументов поля, достаточно открыто, так что вы можете строить более сложные запросы поверхэто, но это очень специфично для некоторого приложения или библиотеки.Двумя яркими примерами являются GitHub GraphQL API (который имеет тенденцию разрешать запросы с точным соответствием для выбранных полей, но не более богатый) и Prisma API (который имеет многоуровневую объектную схему)для репликации запросов SQL).

...