我正在使用apollo-angular包来使用 graphQL 查询后端。一切正常,直到我将标题添加到查询中。
我正在添加自定义标头以从后端获取扁平数据。
当我向查询添加标题时,我得到的数据未定义。虽然我可以在网络选项卡中看到正确的响应(扁平数据)。
这是我的代码:
constructor(private apollo: Apollo) { }
getPos(id: string, date: string) : Observable<any> {
return this.apollo
.watchQuery({
query: gql`
{
pos(id: 10001, date: "2017-02-01") {
id
quantity
price
security {
id
....
}
....
}
}`,
context: {
headers: new HttpHeaders().set("isFlatten", "true") // adding header
}
})
.valueChanges
.pipe(
tap(resp => console.log(resp.data)),
map(result => result.data['pos'])
);
}
响应数据(展平)
{
"data": [
{
"data.pos.security.__typename": "Security",
"data.pos.quantity": 14,
"data.pos.id": 3,
"data.pos.price": 740.6634841227037,
"data.pos.security.id": 296
.............
},
{
"data.pos.security.__typename": "Security",
"data.pos.quantity": 34,
"data.pos.id": 13,
"data.pos.price": 755,
"data.pos.security.id": 290
...........
}]
}
注意:另外,如果我删除 context 属性,它会正确打印响应(非展平数据)