Size: a a a

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

2021 October 04

AD

Alex Derbenev in GraphQL — русскоговорящее сообщество
В Apollo форкнули printSchema из graphql-js и сделали генерацию схемы с директивами (им просто самим эти директивы нужны для реализации тех же @stream и @defer)
https://github.com/nestjs/graphql/issues/1597#issuecomment-873493323
И Nest в итоге может нормально генерировать схему с директивами, если будет под капотом использовать их генератор вместо дефолтного из graphql-js
источник

AD

Alex Derbenev in GraphQL — русскоговорящее сообщество
https://typegraphql.com/docs/directives.html
"Note that even as directives are a purely SDL thing, they won't appear in the generated schema definition file. Current implementation of directives in TypeGraphQL is using some crazy workarounds because graphql-js doesn't support setting them by code and the built-in printSchema utility omits the directives while printing."
источник

AD

Alex Derbenev in GraphQL — русскоговорящее сообщество
И собственно вот самая главная issue
https://github.com/graphql/graphql-js/issues/1343
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Буду дома покажу как сделано у меня
источник

AD

Alex Derbenev in GraphQL — русскоговорящее сообщество
Очень интересна тоже эта тема. Если несложно, тэгните и меня плиз
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Не могу на гогс зайти свой, но пример в type-graphql есть
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
У меня если что apollo-server
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Правда под moleculer, но сути не меняет
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
О, нашел точно как у меня сделано, видимо я тут подсмотрел, через visitSchemaDirectives, тут более комплексные примеры есть
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
источник

AD

Alex Derbenev in GraphQL — русскоговорящее сообщество
Ну так оно ведь в метаданные пишет директивы, а не в схему
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
А, нет, я ошибаюсь
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Да в конечной схеме директив нет, но и в SDL я их вырезал, чтобы на фронте не смотрели юзер группы для тех или иных квери
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Разве в этом есть критичный момент?
источник

AD

Alex Derbenev in GraphQL — русскоговорящее сообщество
SDL это и есть схема. Понимаешь, одно дело метаданные обьектов и полей - они должны быть доступны только на бэке, а совсем другое дело директивы, которые по сути являются частью интерфейса для взаимодействия фронтенда с бэкендом
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Никогда директивы не использовал для клиента напрямую, вроде директив uppercase и т.д., я на директивах авторизацию делаю, поэтому в sdl когда на файлах делал вырезал при выводе директивы
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Но в схему в type-graphql они действительно не попадают, тут я не прав, видимо на фронте не юзаю (кейсов пока не было), вот и не замечал
источник

AD

Alex Derbenev in GraphQL — русскоговорящее сообщество
Принципиально кажется это не совсем правильным. Реально метаданные и схема это две разные вещи, существующие для двух разных целей
источник