GET-запросы

Библиотека Cash предоставляет легкий способ работы с HTTP-запросами в JavaScript, включая GET-запросы, которые используются для получения данных с сервера. GET-запросы не изменяют состояние сервера и передают параметры только через URL.

Синтаксис GET-запроса

Метод для выполнения GET-запроса в Cash выглядит следующим образом:

cash.get(url, [params], [callback]);

Параметры:

  • url — строка с адресом ресурса.
  • params — необязательный объект с параметрами запроса.
  • callback — функция, которая вызывается после получения ответа. Она принимает два аргумента: error и response.

Пример минимального GET-запроса:

cash.get('https://api.example.com/data', function(err, response) {
    if (err) {
        console.error('Ошибка запроса:', err);
    } else {
        console.log('Данные получены:', response);
    }
});

Передача параметров через объект

Cash позволяет передавать параметры запроса в виде объекта, который автоматически сериализуется в строку URL:

cash.get('https://api.example.com/users', { page: 2, limit: 10 }, function(err, response) {
    if (!err) {
        console.log(response);
    }
});

Результирующий URL будет выглядеть так:

https://api.example.com/users?page=2&limit=10

Асинхронная работа с GET-запросами

GET-запросы в Cash могут работать с Promise, что упрощает асинхронное программирование:

cash.get('https://api.example.com/data')
    .then(response => {
        console.log('Ответ сервера:', response);
    })
    .catch(err => {
        console.error('Ошибка запроса:', err);
    });

Использование промисов особенно удобно при цепочке запросов или работе с async/await:

async function fetchData() {
    try {
        const response = await cash.get('https://api.example.com/data');
        console.log('Данные:', response);
    } catch (err) {
        console.error('Ошибка при получении данных:', err);
    }
}

fetchData();

Работа с заголовками

Для некоторых GET-запросов необходимо передавать заголовки (например, для авторизации):

cash.get('https://api.example.com/profile', {
    headers: {
        'Authorization': 'Bearer token123',
        'Accept': 'application/json'
    }
}).then(response => {
    console.log('Профиль пользователя:', response);
});

Обработка ошибок

Cash предоставляет встроенный механизм обработки ошибок. Основные ситуации, которые необходимо учитывать:

  • Сетевые ошибки (отсутствие соединения).
  • Ошибки статуса HTTP (например, 404, 500).
  • Некорректные данные в ответе (например, невалидный JSON).

Пример проверки статуса:

cash.get('https://api.example.com/data')
    .then(response => {
        if (response.status >= 200 && response.status < 300) {
            console.log('Успешный ответ:', response.data);
        } else {
            console.error('Ошибка HTTP:', response.status);
        }
    })
    .catch(err => {
        console.error('Сетевая ошибка:', err);
    });

Кэширование GET-запросов

Cash поддерживает кэширование ответов GET-запросов через опцию cache. Это позволяет избежать повторных запросов к серверу при одинаковых URL и параметрах:

cash.get('https://api.example.com/data', { cache: true })
    .then(response => {
        console.log('Ответ с кэша или сервера:', response);
    });

GET-запросы с динамическими параметрами

Динамическое формирование URL удобно при работе с переменными параметрами:

const userId = 42;
cash.get(`https://api.example.com/users/${userId}`)
    .then(response => {
        console.log('Информация о пользователе:', response);
    });

Также можно комбинировать объект параметров и динамический URL:

const filters = { role: 'admin', active: true };
cash.get(`https://api.example.com/users/${userId}`, filters)
    .then(response => console.log(response));

Интеграция с JSON

При работе с API, возвращающими JSON, Cash автоматически парсит данные:

cash.get('https://api.example.com/data')
    .then(response => {
        const users = response.data;
        console.log('Список пользователей:', users);
    });

Если ответ не является корректным JSON, библиотека выдаст ошибку парсинга, которую можно обработать через .catch().

GET-запросы с таймаутом

Для контроля времени ожидания ответа можно использовать опцию timeout:

cash.get('https://api.example.com/data', { timeout: 5000 })
    .then(response => console.log(response))
    .catch(err => console.error('Превышено время ожидания:', err));

Таймаут задаётся в миллисекундах. Если сервер не отвечает в указанное время, запрос прерывается и возвращает ошибку.


Эти возможности делают GET-запросы в Cash гибким инструментом для работы с внешними API, кэшированием, асинхронной обработкой и динамическими параметрами. Правильное использование заголовков, параметров и обработки ошибок обеспечивает стабильность и предсказуемость приложений.