如何形成graphql后端响应?
我正在查询我的graphql后端,需要有扁平形状的响应 我的问题是:如何形成graphql后端响应?,graphql,Graphql,我正在查询我的graphql后端,需要有扁平形状的响应 我的问题是: gql` { questions { edges { id title author: user { email } } } } ` 我的答复是: '5d3eafb7889a135ff8cd950c': { id: '5d3eafb7889a135ff8cd950c',
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基础研究堆栈中。。。