Отправка соответствующих сообщений об ошибках на веб-действиях - PullRequest
0 голосов
/ 06 февраля 2019

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

Спасибо!

1 Ответ

0 голосов
/ 06 февраля 2019

Я сам нашел ответ:)

Чтобы получить код состояния и заголовки, необходимо установить в поле Response Content Type значение «Использовать заголовок« Content-Type »из действия» при настройке ».соответствие между вызовом API и действием ....

...