Запрос GraphQL - как использовать поле встроенных фрагментов для разных типов - PullRequest
0 голосов
/ 28 марта 2020

У меня есть рабочий запрос GraphQL, который выглядит примерно так:

query( $ownerId: ID!){
    getPets(ownerId:$ownerId){
        id,
        ownerDescription
    ...on Dog {
            id
            name
        }
    ...on Cat {
            id
            name

        }
    }
}

То, что я хочу (но не знаю, как добиться), следующее

query( $ownerId: ID!){
    getPets(ownerId:$ownerId){
        id,
        ownerDescription
    ...on (Dog | Cat) {
            id
            name
        }
}

Возможно ли это вообще? повторно использовать поля, как я хочу?

У меня нет контроля над схемой, поэтому я надеюсь найти решение, которое можно реализовать в том же месте, где я делаю запрос.

1 Ответ

0 голосов
/ 29 марта 2020

Это зависит от схемы. GraphQL поддерживает наследование интерфейса. Таким образом, Dog и Cat могут наследовать, скажем, Pet со свойствами id и name. В этом сценарии вы можете ссылаться на родителя вместо

   ... on Pet {
     id
     name
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...