GET-запросы

Umbrella JS — это легковесная библиотека для работы с DOM и AJAX, которая предлагает упрощённый синтаксис для выполнения HTTP-запросов, в том числе GET-запросов. GET-запросы используются для получения данных с сервера без изменения состояния на сервере. В Umbrella JS их реализация интуитивно понятна и компактна.


Метод u.ajax

Для выполнения GET-запроса используется метод u.ajax(). Основные параметры:

  • url — адрес ресурса, к которому выполняется запрос.
  • method — тип HTTP-запроса (GET, POST и др.). Для GET можно не указывать, так как это значение по умолчанию.
  • data — объект с параметрами запроса. Для GET-запроса параметры автоматически сериализуются в строку URL.
  • success — функция, вызываемая при успешном завершении запроса, принимает ответ сервера.
  • error — функция, вызываемая при ошибке запроса.

Пример базового GET-запроса:

u.ajax({
    url: '/api/users',
    method: 'GET',
    success: function(response) {
        console.log('Данные получены:', response);
    },
    error: function(err) {
        console.error('Ошибка запроса:', err);
    }
});

В этом примере данные запрашиваются с адреса /api/users. Если сервер возвращает JSON, Umbrella JS автоматически передаёт его в success в виде объекта.


Передача параметров через GET

GET-запросы часто требуют передачи параметров. Umbrella JS упрощает этот процесс: достаточно указать объект data, и библиотека преобразует его в query string.

Пример с параметрами:

u.ajax({
    url: '/api/search',
    method: 'GET',
    data: {
        query: 'Umbrella JS',
        page: 2
    },
    success: function(response) {
        console.log('Результаты поиска:', response);
    }
});

Запрос будет отправлен на адрес: /api/search?query=Umbrella+JS&page=2


Работа с JSON

Если сервер возвращает JSON, важно указать заголовок Accept, чтобы гарантировать правильное форматирование данных. Umbrella JS позволяет передавать заголовки через объект headers:

u.ajax({
    url: '/api/products',
    method: 'GET',
    headers: {
        'Accept': 'application/json'
    },
    success: function(data) {
        console.log('Список продуктов:', data);
    }
});

Umbrella JS автоматически парсит JSON в объект JavaScript, избавляя от необходимости вручную использовать JSON.parse().


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

Помимо классического callback-подхода, Umbrella JS поддерживает использование промисов. Для GET-запроса это позволяет писать код более структурированно:

u.ajax({
    url: '/api/posts',
    method: 'GET'
}).then(function(response) {
    console.log('Посты получены:', response);
}).catch(function(err) {
    console.error('Ошибка при загрузке постов:', err);
});

Промисы делают возможным последовательное выполнение запросов без “callback hell” и удобны при комбинировании нескольких GET-запросов.


Работа с кэшированием и заголовками

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

u.ajax({
    url: '/api/data',
    method: 'GET',
    data: {
        _: new Date().getTime()
    },
    success: function(response) {
        console.log(response);
    }
});

Также можно управлять заголовками для GET-запроса:

u.ajax({
    url: '/api/userinfo',
    method: 'GET',
    headers: {
        'Authorization': 'Bearer token123'
    },
    success: function(data) {
        console.log(data);
    }
});

Обработка ошибок и таймаутов

Метод u.ajax() поддерживает обработку ошибок через error и настройку таймаута через timeout:

u.ajax({
    url: '/api/stats',
    method: 'GET',
    timeout: 5000, // 5 секунд
    success: function(data) {
        console.log('Статистика:', data);
    },
    error: function(err) {
        console.error('Не удалось получить данные:', err);
    }
});

Если сервер не отвечает в течение указанного времени, срабатывает функция error.


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

Umbrella JS позволяет строить URL динамически на основе переменных:

let userId = 42;
u.ajax({
    url: `/api/users/${userId}`,
    method: 'GET',
    success: function(user) {
        console.log('Пользователь:', user);
    }
});

Это особенно удобно при работе с REST API, где ресурсы идентифицируются параметрами в URL.


Итоговый синтаксис GET-запроса

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

u.ajax({
    url: 'адрес_ресурса',
    method: 'GET', // необязательно, GET — значение по умолчанию
    data: { /* параметры */ },
    headers: { /* заголовки */ },
    timeout: 0, // время в мс, 0 — без таймаута
    success: function(response) { /* обработка успешного ответа */ },
    error: function(err) { /* обработка ошибки */ }
});

Эта структура объединяет передачу данных, управление заголовками, обработку ошибок и поддержку промисов, делая GET-запросы в Umbrella JS удобными и компактными.