Использование сторонних API
Общайтесь с сервисами, которые написали не вы, и выживайте, когда они сбоят
- вызывать JSON API из Node встроенным
fetch, - отправлять заголовки аутентификации (Bearer-токены и API-ключи) безопасно,
- распознавать и соблюдать ограничения частоты (HTTP 429 и
Retry-After), - строить устойчивые вызовы с таймаутами, повторами и экспоненциальной задержкой,
- решать, когда
axiosоправдывает себя по сравнению сfetch.
1. Что на самом деле значит "использовать API"
Сторонний API - это HTTP-сервис, которым владеет кто-то другой. Вы - клиент: вы отправляете запрос, вам присылают ответ, обычно в формате JSON. Ваша программа на Node становится потребителем их данных или действий.
Аналогия. Обращение к API похоже на заказ в ресторане. Вы (клиент) читаете меню (документацию), делаете заказ в том формате, который ожидает кухня (запрос), и показываете карту, если заведение только для членов клуба (заголовок аутентификации). Кухня может быть перегружена и попросить подождать (ограничение частоты), а блюдо может закончиться (статус ошибки). Внимательный посетитель планирует всё это, а не считает, что каждый заказ приходит мгновенно и безупречно.
Начиная с Node 18, функция fetch в браузерном стиле встроена - пакет не нужен. Она возвращает Promise, поэтому вы используете её с async/await - ровно те навыки, что у вас уже есть:
// Node 18+ : fetch глобальный, импорт не нужен
const res = await fetch('https://api.github.com/users/nodejs');
const data = await res.json();
console.log(data.name, data.public_repos);
Два await, две стадии: fetch(...) завершается, когда пришли заголовки, а res.json() - когда всё тело прочитано и разобрано. Держите эти две стадии раздельно в голове: множество багов прячется в промежутке между ними.