Проверяет понимание базового механизма запросов в RTK Query и умение настраивать взаимодействие с API через fetchBaseQuery.
RTK Query — это инструмент для работы с серверными данными, встроенный в Redux Toolkit. Чтобы описать, как именно приложение общается с API, используется понятие baseQuery. По умолчанию это fetchBaseQuery — небольшая обёртка над нативным fetch, которая берёт на себя типовые задачи: подстановку базового URL, сериализацию параметров, установку заголовков и разбор ответа.
fetchBaseQuery возвращает функцию, которую RTK Query вызывает для каждого эндпоинта. Внутри она формирует URL из baseUrl и пути эндпоинта, добавляет заголовки и тело запроса, а затем выполняет fetch. Ответ автоматически парсится как JSON, а ошибки HTTP преобразуются в структуру с полями status и error.
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
const api = createApi({
reducerPath: 'api',
baseQuery: fetchBaseQuery({
baseUrl: 'https://api.example.com',
prepareHeaders: (headers, { getState }) => {
const token = getState().auth.token;
if (token) headers.set('authorization', `Bearer ${token}`);
return headers;
},
}),
endpoints: (builder) => ({
getUsers: builder.query({ query: () => '/users' }),
}),
});Если стандартных возможностей не хватает, fetchBaseQuery можно обернуть: вызвать внутри своей функции, обработать ошибку 401, обновить токен и повторить запрос. Это стандартный паттерн для авторизации.
Итог: fetchBaseQuery стоит применять как базовый инструмент для REST-запросов в RTK Query, а при нестандартных сценариях — расширять его или заменять собственной реализацией.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию