如何调整我的graphql后端响应?

时间:2019-07-29 11:57:55

标签: graphql

我正在查询我的graphql后端,并且需要响应使其具有扁平形状

我的查询:

gql`
  {
    questions {
      edges {
         id
         title
         author: user {
          email
         }
      }
   }
  }
`

我的答复:

    '5d3eafb7889a135ff8cd950c': {
      id: '5d3eafb7889a135ff8cd950c',
      title: 's',
      author: {
        email: 'dggdfgdgfd@gmail.com',
        __typename: 'User'
      },
      __typename: 'Question'
    },

问题在于作者,我需要作为字符串而不是对象:

id:“ 5d3eafb7889a135ff8cd950c”,    标题:“ s”,    作者:“ dggdfgdgfd@gmail.com” // <===   `

1 个答案:

答案 0 :(得分:1)

您有两个选择:

1)从GraphQL服务器获取数据后,根据需要转换数据。 Javascript实现可能是:

function flattenGqlResponse (response) {
  return Object.keys(response).map((question) => {
    return {
      id: response[question].id,
      title: response[question].title,
      author: response[question].author.email
      }
    } 
  );
}

2)展平GraphQL服务器上GraphQL解析器中的结构。可能您不希望根据我对架构的了解而遵循此路线,除非您的User对象只有一个字段,即email