Apollo如何提供有意义的__typenames?

Apollo how to provide meanful __typenames?

我有一个 Hasura -> Apollo -> React 的设置。 Apollo 会自动将 __typenames 添加到所有结果中。它们应该是有意义的好名字,例如 Artist 或 Book 等。 就我而言,它们都是 Query Hasura 自己生成 grapql 模式,因此应该涵盖该部分。我应该在哪里挖? 下面是一个实现示例:

export const FETCH_FOLLOWED_ARTIST = gql`
  query FetchFollowedArtist($uuid: uuid!, $artist_id: String!) {
    users_performers_by_pk(user_id: $uuid, artist_id: $artist_id) {
      user_id
      artist_id
    }
  }
`;

其中 user_performers 是两个字段的简单 table

对于给定的 GraphQL 选择集,__typename 应该是 table,root 除外,默认情况下 __typenamequery_root 查询和 mutation_root 用于突变。

例如,我有一个名为“user”的table。鉴于此查询:

query {
  __typename
  user {
    __typename
  }
}

结果是:

{
  "data": {
    "__typename": "query_root",
    "user": [
      {
        "__typename": "user"
      }
    ]
  }
}

如果您将 __typename 添加到示例中:

export const FETCH_FOLLOWED_ARTIST = gql`
  query FetchFollowedArtist($uuid: uuid!, $artist_id: String!) {
    __typename # <- added this
    users_performers_by_pk(user_id: $uuid, artist_id: $artist_id) {
      __typename # <- added this
      user_id
      artist_id
    }
  }
`;

你应该看到类似的东西,绝对不是 Query 这两个值。

Where should I dig?

对于给定的 table,在“修改”下,您可以更改根字段:

但是对于查询,__typename总是returnstable的名称。