Выполнение HTTP-запросов с использованием Typescript или NodeJS - PullRequest
0 голосов
/ 22 апреля 2020

Я ищу определенный способ обработки простых HTTP-запросов к REST API с использованием современных javascript фреймворков, в моем случае Typescript, но я думаю, что это также применимо к Nodejs.

Поскольку не существует простого нативного способа сделать это, я обнаружил множество библиотек, некоторые из которых сейчас устарели, и десятки статей, выпущенных несколько лет назад, некоторые с обновлениями, основанными на более новых лучших практиках. , Конечно, это не может быть так сложно. Это займет у меня около 5 минут, чтобы реализовать в Golang или Python, но, увы, с JavaScript это боль - это только я?

Может, кто-нибудь уточнит текущее состояние игры и порекомендует способ сделать это, исходя из того, где мы сейчас находимся в 2020 году.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Несмотря на то, что запрос-обещание-нативный, вероятно, работает просто отлично, Ax ios является лучшей альтернативой для использования в TypeScript. Он поставляется с собственными определениями типов и в целом менее зависит от других пакетов. Использование его API очень похоже на ответ Адриана, однако есть несколько тонких отличий.

const url: string = 'your-url.example';

try {
    const response = await axios.get(yourUrl);
} catch (exception) {
    process.stderr.write(`ERROR received from ${url}: ${exception}\n`);
}
0 голосов
/ 22 апреля 2020

Оформить заказ https://www.npmjs.com/package/node-fetch и https://www.npmjs.com/package/axios

    // using axios
const options = {
  url: 'http://localhost/test.htm',
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json;charset=UTF-8'
  },
  data: {
    a: 10,
    b: 20
  }
};

axios(options)
  .then(response => {
    console.log(response.status);
  });



//using fetch
const url = 'http://localhost/test.htm';
const options = {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json;charset=UTF-8'
  },
  body: JSON.stringify({
    a: 10,
    b: 20
  })
};

fetch(url, options)
  .then(response => {
    console.log(response.status);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...