我正在查询我的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” // <=== `
答案 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