@frozenshift/http_request
v1.0.0
Published
Враппер над fetch для фронта и чистой ноды с обработкой 429 ошибки.
Downloads
95
Maintainers
Readme
@frozenshift/http_request
Надёжный HTTP-клиент на основе fetch с автоматическими повторами, обработкой ошибки 429 (Too Many Requests) и настраиваемой задержкой.
Идеально подходит для работы с API, которые имеют жёсткие rate limits или нестабильны.
Особенности
- Автоматические повторы при ошибках сети и статусе 429
- Настраиваемое количество попыток
- Опциональная задержка перед запросом
- Поддержка авторизации (Bearer token)
- Поддержка кастомных заголовков
- ESM-модуль (нативная поддержка
import)
Установка
npm install @frozenshift/http_requestКак этим пользоваться
import { http_request } from '@frozenshift/http_request';
// Простой GET-запрос
const data = await http_request('https://api.example.com/data');
console.log(data);
// GET с повторами и обработкой rate limit
const result = await http_request(
'https://api.example.com/endpoint',
15, // maxRetries — максимум 15 попыток
true, // limit — учитывать лимит попыток (true = остановиться после maxRetries)
500, // delay — начальная задержка 500 мс (полезно для rate limit)
'GET', // method
null, // data
'Bearer your-token-here', // authToken
{ 'X-Custom-Header': 'value' } // customHeaders
);
if (result) {
console.log('Успешно:', result);
} else {
console.log('Запрос окончательно провалился');
}
// POST-запрос с данными
const postResponse = await http_request(
'https://api.example.com/create',
10, // maxRetries
true,
0,
'POST',
{ name: 'John', age: 30 }, // данные будут автоматически преобразованы в JSON
'Bearer abc123'
);
console.log(postResponse);