Почему мой вызов API не достигает конечной точки? (машинопись, запрос-обещание)

Я не могу заставить свой вызов API попасть в конечную точку. У меня есть 2 проекта TypeScript, один из которых представляет собой список конечных точек API, а другой — процесс, который будет вызывать ряд конечных точек API для выполнения операций. Конечная точка API примет веб-токен JSON и обработает его в заголовке (в документации Swagger он определен и представлен следующим образом:

"security": [
    {
        "Bearer": []
    }
]

где «Bearer» определяется в протоколах безопасности вверху:

"securityDefinitions": {
    "Bearer": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header"
    }
}

Я использую пакет request-promise в TypeScript. Я отправляю запрос и всегда получаю возвращаемый объект «undefined». При запуске конечных точек API на локальном хосте точки останова даже не срабатывают, что заставляет меня думать, что это даже не происходит.

Код:

const request = require('request-promise');

var options = {
    uri: <endpoint>,
    headers: {
        'User-Agent': 'Request-Promise',
        'encoding': 'utf8',
        'content-type': 'application/json',
        'authorization': `Bearer ${jwt}`
    },
    method: 'GET',
    json: true
};

    request(options)
.then(function (response) {
        console.log(response)
    })
    .catch(function (err) {
        console.error(err)
    });

тело возврата равно нулю. Пожалуйста, помогите мне исправить это.


person NICO BHHC Coder    schedule 17.04.2020    source источник


Ответы (1)


Ваш запрос возвращает обещание. Чтобы получить и использовать ответ, вы должны добавить следующее

request(options)
    .then(function (response) {
        console.log(response)
    })
    .catch(function (err) {
        console.error(err)
    });
person Raphael Pr    schedule 17.04.2020
comment
Позвольте мне уточнить: даже с этими изменениями проблема сохраняется. Что-то не так с моей конфигурацией? - person NICO BHHC Coder; 18.04.2020
comment
Вот в чем дело. Он даже не охватывает пути успеха или неудачи. Он прочитает путь then(function (response) { и путь .catch(function (err) {, но затем просто пропустит до конца. Журнал читается так, как будто код даже не запускался! - person NICO BHHC Coder; 18.04.2020
comment
А вы попробуйте свернуть запрос, чтобы исключить случаи, когда сервер не отвечает. Вы также можете попробовать добавить тайм-аут к вашему запросу (например, тайм-аут: 15000). - person Raphael Pr; 18.04.2020