Отправка соответствующих сообщений об ошибках на веб-действиях
У меня есть некоторые веб-действия, которые доступны через API Connect в IBM Cloud Serverless Functions. Некоторые из моих действий используют запросы-обещания для вызова внешних служб REST, и мне нужно иметь возможность отлавливать ошибку и отвечать вызывающему абоненту соответствующим кодом состояния. Поскольку действия доступны через Интернет, в документации указано, что я могу использовать аннотированный 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.
Спасибо!
1 ответ
Я нашел ответ сам:)
Чтобы получить код состояния и заголовки, необходимо установить поле Response Content Type
`использовать заголовок"Content-Type"из действия" при настройке отображения между вызовом API и действием....