获取 apollo-rest-datasource 发布请求的 Response-Body
Posted
技术标签:
【中文标题】获取 apollo-rest-datasource 发布请求的 Response-Body【英文标题】:Get Response-Body of apollo-rest-datasource post request 【发布时间】:2020-08-27 05:42:51 【问题描述】:如何获取 Apollo REST-Datasource 模块提交的 Post-Request 的 Response-Body?
数据接口:
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 不同。
参考:NPM Site apollo-datasource-rest
【问题讨论】:
【参考方案1】:可以通过覆盖RESTDataSource
的didReceiveResponse
方法来获取响应对象的标头。
这是一个代码 sn-p,如果你只关心标题:
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'),
,
;
);
【讨论】:
以上是关于获取 apollo-rest-datasource 发布请求的 Response-Body的主要内容,如果未能解决你的问题,请参考以下文章