Используйте интерфейсы для построения запроса в GraphQL - PullRequest
0 голосов
/ 24 февраля 2020

возможно ли строить запросы к GraphQL с использованием существующих интерфейсов? или мы должны написать один и тот же код дважды)

например в do c у нас есть

interface Post {
  id: string;
  title: string;
  ...

, а затем писать те же поля в запросе

query allPosts {
      posts {
        id
        title
        ...

есть ли способ написать что-то вроде

query allPosts {
      posts: Post[]

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

NO ... types!=queries ... posts: Post[] уже используется в определении ответа

Запрос определяет, какое подмножество (поля) вам нужно из этого (и других) типа (ов), например, только название

Вы, вероятно, ищете Фрагменты

1 голос
/ 24 февраля 2020

Невозможно сделать что-то подобное, потому что типы TypeScript не существуют во время выполнения. Интерфейсов также недостаточно для представления полей GraphQL, поскольку они не могут захватывать информацию, такую ​​как значения аргументов или использование директив.

Однако вы можете автоматически генерировать типы TypeScript из существующих запросов, что обычно и делается. См. Генератор кода GraphQL .

...