Size: a a a

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

2020 February 17

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
вот попробовал описать, но его ведь нужно передать в query ? тоесть идет квери, внутри квери есть этот запрос,, который что то вернет?
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
так верно?
источник

اب

ابو بكر in GraphQL — русскоговорящее сообщество
Привет
источник
2020 February 18

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
увидел вот такое описание схемы, для чего оно, если в graphql файле удобнее и как тут вложенности описать?
На картинке синтаксис graphql-js, референсной имплементации GraphQL на языке JavaScript.

Это так называемый code-first подход. Изначально в Facebook именно так и определяли GraphQL схему на языке программирования.

В противоположность этому подходу есть ещё SDL-first подход. Это когда ты пишешь схему на SDL, а резолверы отдельно в коде. Подход стал популярен после появления graphql-tools.

Подробнее: https://dev.to/novvum/graphql-code-first-and-sdl-first-the-current-landscape-in-mid-2019-547h
источник

АР

Алексей Родионов in GraphQL — русскоговорящее сообщество
О минусах SDL-first подхода и плюсах code-first можно почитать здесь:

https://www.prisma.io/blog/the-problems-of-schema-first-graphql-development-x1mn4cb0tyl3
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
спасибо
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
как аполо ловит типы ? мы ему передаем только резолверы, которые повторяют структуру схемы, при генерации типов он сопоставляет резолверы и схему? или в какой момент он это понимает?
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
или он в рантайме по схеме сопоставляет резолвер и выбросит ошибку если что?
источник

i

igor in GraphQL — русскоговорящее сообщество
речь про генерацию typescript типов?
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
вообще про работу в целом
источник

i

igor in GraphQL — русскоговорящее сообщество
типы генерируются по graphql схеме
источник

EA

Eugene Allenov in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
или он в рантайме по схеме сопоставляет резолвер и выбросит ошибку если что?
Выбросит. Например если null для nonNullable придёт.
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
получается, есть схема, есть конкретно ее резолвер, по полям резолвера сверяется схема в рантайме, схема соответствует резолверу?
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
например

schema = {
   type AuthorizedQuery: {
       getData: GetDataQuery!
   }
   type GetDataQuery {
       getData1(id: Int): String!
       getData2(id: Int): String!
   }

  type Query: {
       getNews: GetNews!
   }
   type Mutation: {
        signIn: SignIn!
   }
}

resolver = {
   AuthorizedQuery: {
       getData: () => ({})
   },
   Query: {
       getNews: (data) => data
   }
   Mutation: {
       signIn: (data) => data
   }
}
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
например

schema = {
   type AuthorizedQuery: {
       getData: GetDataQuery!
   }
   type GetDataQuery {
       getData1(id: Int): String!
       getData2(id: Int): String!
   }

  type Query: {
       getNews: GetNews!
   }
   type Mutation: {
        signIn: SignIn!
   }
}

resolver = {
   AuthorizedQuery: {
       getData: () => ({})
   },
   Query: {
       getNews: (data) => data
   }
   Mutation: {
       signIn: (data) => data
   }
}
GetDataQuery пропустил в резолвере походу
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
вот так
resolver = {
   AuthorizedQuery: {
       getData: () => ({})
   },
   Query: {
       getNews: (data) => data
   }
   Mutation: {
       signIn: (data) => data
   }
   GetDataQuery: {
       getData1(id): "string"
       getData2(id): "string"
   }
}
добавил GetDataQuery, но еще прикол, что бы работал GetDataQuery, нужно в AuthorizedQuery указать пустую функу  getData: () => ({}), для чего ?
источник

i

igor in GraphQL — русскоговорящее сообщество
Bogdan Shelomanov
например

schema = {
   type AuthorizedQuery: {
       getData: GetDataQuery!
   }
   type GetDataQuery {
       getData1(id: Int): String!
       getData2(id: Int): String!
   }

  type Query: {
       getNews: GetNews!
   }
   type Mutation: {
        signIn: SignIn!
   }
}

resolver = {
   AuthorizedQuery: {
       getData: () => ({})
   },
   Query: {
       getNews: (data) => data
   }
   Mutation: {
       signIn: (data) => data
   }
}
здесь не указан тип GetNews, поэтому нельзя сказать точно.
источник

BS

Bogdan Shelomanov in GraphQL — русскоговорящее сообщество
igor
здесь не указан тип GetNews, поэтому нельзя сказать точно.
а, ну для примера просто, опустил, но суть там, но остался вопрос,
зачем указывать getData: () => ({}),, потому что во время запроса поля должны вернуть не null?
источник
2020 February 19

IK

Ivan Kleshnin in GraphQL — русскоговорящее сообщество
На днях делал обзор GraphCMS: https://youtu.be/GJBrkLZcC90
источник

GO

Google OS in GraphQL — русскоговорящее сообщество
Привет можете помочь как можно исправить Error
источник