0

我有一些启用 Web 的操作,这些操作通过 IBM Cloud Serverless Functions 中的 API Connect 公开。我的一些操作使用请求承诺来调用外部 REST 服务,我需要能够捕获错误并以适当的状态代码响应调用者。由于这些操作是支持 Web 的,因此文档表明我可以使用带注释的 JSON 来设置响应的标头、状态代码和正文。但看起来,API 似乎总是希望得到一个 Content-Type=application/json,在发生错误的情况下响应处理器无法理解我的注释。我尝试了以下但没有成功:

let rp = require('request-promise');
function main(params){
    //setup options
    return rp(options).then( 
      res => {
        return res;
      }
    ).catch(
      err => {
        return { error: { statusCode:err.statusCode } }
      }
    );
}

另一种变化:

let rp = require('request-promise');
function main(params){
    //setup options
    return rp(options).then( 
      res => {
        return res;
      }
    ).catch(
      err => {
        return { statusCode:err.statusCode }
      }
    );
}

问题是我总是得到的状态码是 200 ......我还尝试将运行时更改为 node8.0 但没有成功。

谢谢!

4

1 回答 1

2

我自己找到了答案:)

为了获得状态码和标头,必须将字段设置Response Content Type为“使用来自动作的“Content-Type”标头”,同时设置API调用和动作之间的映射......

于 2019-02-06T04:38:12.953 回答