Библиотека Cash предоставляет легкий способ работы с HTTP-запросами в JavaScript, включая GET-запросы, которые используются для получения данных с сервера. GET-запросы не изменяют состояние сервера и передают параметры только через URL.
Метод для выполнения 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-запросы в 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 предоставляет встроенный механизм обработки ошибок. Основные ситуации, которые необходимо учитывать:
Пример проверки статуса:
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);
});
Cash поддерживает кэширование ответов GET-запросов через опцию
cache. Это позволяет избежать повторных запросов к серверу
при одинаковых URL и параметрах:
cash.get('https://api.example.com/data', { cache: true })
.then(response => {
console.log('Ответ с кэша или сервера:', response);
});
Динамическое формирование 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));
При работе с API, возвращающими JSON, Cash автоматически парсит данные:
cash.get('https://api.example.com/data')
.then(response => {
const users = response.data;
console.log('Список пользователей:', users);
});
Если ответ не является корректным JSON, библиотека выдаст ошибку
парсинга, которую можно обработать через .catch().
Для контроля времени ожидания ответа можно использовать опцию
timeout:
cash.get('https://api.example.com/data', { timeout: 5000 })
.then(response => console.log(response))
.catch(err => console.error('Превышено время ожидания:', err));
Таймаут задаётся в миллисекундах. Если сервер не отвечает в указанное время, запрос прерывается и возвращает ошибку.
Эти возможности делают GET-запросы в Cash гибким инструментом для работы с внешними API, кэшированием, асинхронной обработкой и динамическими параметрами. Правильное использование заголовков, параметров и обработки ошибок обеспечивает стабильность и предсказуемость приложений.