Последствия кэширования при фильтрации вложенных / связанных объектов с помощью GraphQL - PullRequest
0 голосов
/ 27 сентября 2019

Имеется что-то похожее на следующую схему GraphQL:

type Foo {
   id: String!
   name: String!
   type: Int!
}

type User {
   id: String!
   name: String!
   type: Int!
   foos: [Foo!]!
}

Если требуется, чтобы отношения foos были отфильтрованы автоматически сервером, поскольку их может быть многотогда какие последствия это может иметь для кэширования?

Например, я могу определить запрос для выборки всех пользователей определенного типа, что означает, что Foo объекты, относящиеся к каждому User, должны иметь толькоопределенный тип.

Я просто внедряю серверную часть, поэтому я хочу понять, какие проблемы, если таковые имеются, могут возникнуть у клиента.Насколько я понимаю, каждый раз, когда выбирали User, он обновлял отношения Foo, которые когда-либо были бы только подмножеством фактических данных.Это означало бы, что клиенту приходилось перевыпускать данные почти каждый раз, когда менялись критерии, делая кэш бесполезным.

Это действительная проблема?Если так, есть ли лучший способ сделать это?

...