【发布时间】:2019-06-29 23:37:36
【问题描述】:
我有一些启用 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,但没有成功。
谢谢!
【问题讨论】:
标签: openwhisk ibm-cloud-functions