Должны ли грани GraphQL Relay с дополнительной изменяемой информацией также быть узлами?

Согласно спецификации подключения курсоров Relay GraphQL, ребра могут иметь дополнительную информацию. Как я понимаю, для UserProjectConnection, это может быть, например, roleполе, определяющее роль пользователя в проекте. Однако, поскольку вы хотите иметь возможность сменить роль, я ожидаю, что такое преимущество также будет Node (т.е. с идентификатором), чтобы при изменении роли кеш на стороне клиента обновлялся автоматически.

Обычной практикой является создание ребер с (изменяемой) информацией для реализации Node интерфейс?

Следует отметить, что это означает, что у вас больше нет однозначного сопоставления типа объекта GraphQL с типом БД: поскольку отношения Пользователь / Проект являются двунаправленными отношениями и Connection однонаправленные отношения, у вас будет UserProjectConnection и ProjectUserConnection с теми же полями, сопоставленными с одним и тем же объектом БД, что означает, что ваш метод глобального идентификатора не может полагаться исключительно на объект БД и должен учитывать тип узла при создании идентификаторов.

0 ответов

Другие вопросы по тегам