RTK Query
Configuración base del cliente
Configuración de la Base Query
// src/services/baseQuery.ts
import { fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import type { RootState } from '@/app/store';
export const baseQuery = fetchBaseQuery({
baseUrl: process.env.NEXT_PUBLIC_API_URL, // p. ej., https://api.decentraland.org
prepareHeaders: (headers, { getState }) => {
const state = getState() as RootState;
// Añadir token de autenticación
const token = state.user.session?.authToken;
if (token) {
headers.set('authorization', `Bearer ${token}`);
}
// Añadir chain ID para el contexto web3
const chainId = state.user.chainId;
if (chainId) {
headers.set('x-chain-id', String(chainId));
}
// Encabezados estándar
headers.set('accept', 'application/json');
headers.set('content-type', 'application/json');
return headers;
},
credentials: 'omit', // o 'include' si el backend requiere cookies
});Instancia del Cliente
Convenciones de Tags
Nomenclatura de Tags
Tipo de recurso
Tags de Query
Mutación invalida
Ejemplos de Tags
Creando Endpoints
Endpoint de Query (Lectura)
Endpoint de Mutación (Escritura)
Actualizaciones Optimistas
Opciones avanzadas de Query
Polling
Omitir Query
Query perezosa
Transformar Respuesta
Serialización Personalizada
Manejo de errores
Manejo de Errores Personalizado
Gestión del Caché
Actualizaciones manuales del caché
Invalidar Caché
Restablecer el estado del cliente
Prefetch de Datos
Buenas prácticas
1. Usar nombres descriptivos para los endpoints
2. Proveer tags comprehensivos
3. Manejar estados de carga y error
4. Usar Type Guards
Siguientes pasos
Última actualización