我有一些启用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,但没有成功。
谢谢!
答案 0 :(得分:2)
我自己找到了答案:)
为了获得状态码和标头,必须在设置API调用和操作之间的映射的同时将字段Response Content Type
设置为“使用来自“操作的Content-Type”标头”。 ...