如何形成graphql后端响应?

如何形成graphql后端响应?,graphql,Graphql,我正在查询我的graphql后端,需要有扁平形状的响应 我的问题是: gql` { questions { edges { id title author: user { email } } } } ` 我的答复是: '5d3eafb7889a135ff8cd950c': { id: '5d3eafb7889a135ff8cd950c',

我正在查询我的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) 从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解析器中的结构。很可能,您不希望根据我对您的模式的了解来执行此路线,除非您的
用户
对象只有一个字段,即
电子邮件

,否则无法更改GraphQL中响应的形状(您只能像您已经为
用户
/
作者
重命名字段一样)。不确定您将数据传递给什么,但您可以在需要时使用一个简单的
map
来更改问题的结构。谢谢,它成功了…将您的答案添加到我的javascript基础研究堆栈中。。。