Bliss.js предоставляет лаконичный и современный API для работы с HTTP-запросами. GET-запросы используются для получения данных с сервера без изменения состояния ресурса. В Bliss.js выполнение таких запросов интуитивно и позволяет легко интегрировать асинхронные операции в веб-приложения.
Базовый синтаксис GET-запроса в Bliss.js выглядит следующим образом:
bliss.get('/api/data')
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Ошибка запроса:', error);
});
Разбор ключевых моментов:
bliss.get(url) — метод для отправки GET-запроса на
указанный URL.response.json() — метод преобразует ответ сервера в
объект JavaScript, если сервер возвращает JSON.then() и catch() — стандартная обработка
промисов для успешного ответа и ошибок.GET-запросы позволяют передавать данные в строке запроса. Bliss.js предоставляет удобный способ автоматической сериализации параметров:
bliss.get('/api/users', { params: { page: 2, limit: 10 } })
.then(response => response.json())
.then(users => console.log(users));
/api/users?page=2&limit=10.Иногда необходимо передать кастомные заголовки, например, токены
авторизации или заголовки для кэширования. Bliss.js позволяет задавать
их через объект headers:
bliss.get('/api/profile', {
headers: {
'Authorization': 'Bearer TOKEN',
'Accept': 'application/json'
}
})
.then(response => response.json())
.then(profile => console.log(profile));
Authorization используется для аутентификации.Accept указывает предпочтительный формат ответа.Bliss.js автоматически выбрасывает ошибки при сетевых сбоях, но серверные ошибки (например, 404 или 500) нужно обрабатывать вручную:
bliss.get('/api/data')
.then(response => {
if (!response.ok) {
throw new Error(`Ошибка сервера: ${response.status}`);
}
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error(error));
response.ok — логическое значение, показывающее
успешность HTTP-ответа.throw позволяет перейти в блок
catch при любой проблеме.Для удобства работы с асинхронным кодом Bliss.js полностью совместим
с async/await:
async function fetchUsers() {
try {
const response = await bliss.get('/api/users');
if (!response.ok) throw new Error(`Ошибка: ${response.status}`);
const users = await response.json();
console.log(users);
} catch (error) {
console.error('Ошибка запроса:', error);
}
}
fetchUsers();
async/await делает код более читаемым при
цепочках промисов.try/catch, что улучшает
отладку.Bliss.js позволяет задавать таймаут запроса и стратегию кэширования для GET-запросов:
bliss.get('/api/data', {
timeout: 5000, // миллисекунды
cache: 'no-cache'
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
timeout прерывает запрос, если сервер не отвечает
заданное время.cache управляет кэшированием: 'no-cache',
'reload', 'force-cache'.Bliss.js позволяет выполнять несколько GET-запросов параллельно с
использованием Promise.all:
Promise.all([
bliss.get('/api/users').then(res => res.json()),
bliss.get('/api/posts').then(res => res.json())
])
.then(([users, posts]) => {
console.log('Пользователи:', users);
console.log('Посты:', posts);
});
GET-запросы часто используются для получения данных по пользовательским фильтрам. Bliss.js позволяет динамически формировать параметры:
const filters = {
category: 'books',
sort: 'price',
order: 'asc'
};
bliss.get('/api/items', { params: filters })
.then(response => response.json())
.then(items => console.log(items));
filters автоматически преобразуется в строку
запроса:
/api/items?category=books&sort=price&order=asc.Для эффективной отладки Bliss.js поддерживает вывод информации о запросах:
bliss.get('/api/data', { debug: true })
.then(response => response.json())
.then(data => console.log(data));
debug выводит URL, заголовки и параметры запроса в
консоль.GET-запросы в Bliss.js сочетают простоту и гибкость: они поддерживают
передачу параметров, настройку заголовков, обработку ошибок, таймауты и
кэширование. Использование промисов и async/await
обеспечивает удобное управление асинхронным потоком данных, делая
библиотеку мощным инструментом для работы с API в современных
веб-приложениях.