javascript - 获取 apollo-rest-datasource 发布请求的 Response-Body
问题描述
如何获取 Apollo REST-Datasource 模块提交的 Post-Request 的响应体?
数据接口:
async postEntry(body) {
return this.post(
"/domain.com/myService",
body
).catch((err) => console.log(err));
解析器:
Mutation: {
addEntry: async (_source, { entry }, { dataSources }) => {
const response = await dataSources.dataAPI.postEntry(entry);
return response;
},
响应仅包含不同的标头。与响应包含预期正文的简单 Get-Request 不同。
解决方案
可以通过覆盖RESTDataSource
'didReceiveResponse
方法来获取响应对象的标头。
这是一个代码片段,如果您只关心标题:
async didReceiveResponse(response, _request) {
// Extract the required headers from response and return them
return {
header_name: response.headers.get('header_name'),
// ...
};
}
或者,如果您希望将标头与默认响应放在一起:
async didReceiveResponse(response, _request) {
return super.didReceiveResponse(response, _request).then((defaultReturnValue) => {
return {
...defaultReturnValue,
headers: {
header_name: response.headers.get('header_name'),
},
};
});
}
推荐阅读
- python - TensorFlow 'categorical_crossentropy' 中的 ValueError
- python - 找不到 xpath 以及如何向 iframe 添加值
- mysql - 无法在 GCP 云 MySQL 中创建触发器
- php - 通过 GraphQL 使用 PHP 的 CURL 请求
- javascript - 产品和数据不显示在电脑模式的平板电脑的首页上,仅在移动模式下显示
- php - 如何使用 php (laravel) 创建 js 对象
- decode - 如何解码这个php文件
- python-3.x - 如何组合包含字符串和 int 的两行?
- python - Python 中的 Bland Altman Plot 未显示 TickLabels
- python - 如何使用 PyGithub 从一个提交更改到另一个分支?