Size: a a a

GraphQL — русскоговорящее сообщество

2019 April 15

AW

Al W in GraphQL — русскоговорящее сообщество
Ariadne выглядит норм
источник

VS

Vitalii Shapovalov in GraphQL — русскоговорящее сообщество
Всем привет! Посоветуйте либы для graphql client (Java)?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Vitalii Shapovalov
Всем привет! Посоветуйте либы для graphql client (Java)?
клиент на java? или java сервер, а клиент на чём-то другом?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Vitalii Shapovalov
Всем привет! Посоветуйте либы для graphql client (Java)?
источник

VS

Vitalii Shapovalov in GraphQL — русскоговорящее сообщество
Сервер
источник

e

egoarka in GraphQL — русскоговорящее сообщество
так это, тогда можно dataloader заюзать, а резолвить коллекцию по их айдишникам (одним батчем), а не по модели

айдишники же у коллекции остаются?
источник

e

egoarka in GraphQL — русскоговорящее сообщество
akaSybe
в резолвере поля коллекции достать из контекста модель и вызвать метод получения коллекции
по-моему норм способ, как раз что-то типа даталоадера, только с точки зрения моделей hibernat'а, но т.к. у нас граф, то может придется все-равно побатчить немного, если много коллекций, это правда можно и решить на уровне hibernat'а, мне кажется
источник

e

egoarka in GraphQL — русскоговорящее сообщество
если айдишники будут, то ты сможешь их сбатчить одним запросом и не парится
источник

e

egoarka in GraphQL — русскоговорящее сообщество
ну просто другая проблема может быть, если коллекций много, а не одна, то вроде как будет несколько запросов

для одной коллекции способ еще норм с резолвом с помощью модели
источник

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
Всем привет!

Реализовал директиву hasRole, которую можно применять к FIELD_DEFINITION и OBJECT по инструкции из https://www.apollographql.com/docs/graphql-tools/schema-directives#enforcing-access-permissions.

Хочу, чтобы её можно было навешивать на аргументы и инпуты мутаций, то есть на ARGUMENT_DEFINITION и INPUT_FIELD_DEFINITION.

Логика такая: например, в мутации updatePost ограничить изменение title таким образом, чтобы только администраторы могли менять это поле, путём навешивания директивы на аргумент title. При этом на аргумент content ничего не навешивать, разрешив тем самым всем редактировать поле content. Или навесить директиву с другой ролью (отличной от администратора).

Возможно ли это вообще?

Очевидно, что нужно использовать visitArgumentDefinition и visitInputFieldDefinition.

Но проблема в том, что у argument'ов и input field'ов в field нет resolve.
источник
2019 April 16

EW

Evan White in GraphQL — русскоговорящее сообщество
Алексей Родионов
Всем привет!

Реализовал директиву hasRole, которую можно применять к FIELD_DEFINITION и OBJECT по инструкции из https://www.apollographql.com/docs/graphql-tools/schema-directives#enforcing-access-permissions.

Хочу, чтобы её можно было навешивать на аргументы и инпуты мутаций, то есть на ARGUMENT_DEFINITION и INPUT_FIELD_DEFINITION.

Логика такая: например, в мутации updatePost ограничить изменение title таким образом, чтобы только администраторы могли менять это поле, путём навешивания директивы на аргумент title. При этом на аргумент content ничего не навешивать, разрешив тем самым всем редактировать поле content. Или навесить директиву с другой ролью (отличной от администратора).

Возможно ли это вообще?

Очевидно, что нужно использовать visitArgumentDefinition и visitInputFieldDefinition.

Но проблема в том, что у argument'ов и input field'ов в field нет resolve.
Мне кажется, что лучше будет сделать две мутации updatePost и adminUpdatePost. Так будет понятнее со стороны клиента что использовать, и проще со стороны сервера в реализации
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
а если добавится ещё роль?)
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
if (..) mutation1 else if (..) mutation2 else mutation3?
источник

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
Я знаю "обходные" пути. Вопрос состоит в том, реально ли сделать то, что я хочу.
источник

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
В middleware (напрмер, graphql-shield) тоже не видел, чтобы ограничивали аргументы мутаций/квери, только мутации/квери целиком.
источник

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
При этом, ограничить чтение конкретных полей легко: навешиваешь директиву (или миддлварю) на поле типа.
источник

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
А вот с записью засада.
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
Если выяснишь, дай, пожалуйста, знать
источник

a

akaSybe in GraphQL — русскоговорящее сообщество
интересный вопрос
источник

U

Uxname in GraphQL — русскоговорящее сообщество
в graphql-shield можно так делать
источник