获取 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】:

可以通过覆盖RESTDataSourcedidReceiveResponse 方法来获取响应对象的标头。

这是一个代码 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的主要内容,如果未能解决你的问题,请参考以下文章

js如何获取某一个元素,如果获取不到就继续获取,直到获取到后停止获取?

iOS ---------- 获取设备的各种信息

java反射获取属性值

Shell 获取路径

iOS 获取文件大小

根据日期字符串获取星期几,日期获取星期,时间获取星期,js获取星期