TIL 6-21-21

graphQL inline fragments

Like many other type systems, GraphQL schemas include the ability to define interfaces and union types.

If you are querying a field that returns an interface or a union type, you will need to use inline fragments to access data on the underlying concrete type.

query HeroForEpisode($ep: Episode!) {
  hero(episode: $ep) {
    name
    ... on Droid {
      primaryFunction
    }
    ... on Human {
      height
    }
  }
}
{
  "data": {
    "hero": {
      "name": "R2-D2",
      "primaryFunction": "Astromech"
    }
  }
}

src