Отправка соответствующих сообщений об ошибках на веб-действиях

У меня есть некоторые веб-действия, которые доступны через 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 и действием....

Другие вопросы по тегам