# Axios
Este guia descreve como o Axios é usado via o cliente de API do projeto.
app/api/core/factory.ts cria um cliente Axios configurado.app/api/core/index.tsx exporta api e isApiError.app/api/utils/index.ts concentra hooks baseados em React Query (useApiQuery, useApiQueries) e helpers.app/api/calls/<Domain>/index.ts define as chamadas por dominio.O cliente e criado com createApi e aplica:
baseURL a partir de VITE_SERVER_API.Accept: application/json por padrão.paramsSerializer com indexes: null para arrays sem indices.Accept-Language baseado no i18next.res.data diretamente.ApiError via convertError.Arquivos:
app/api/core/factory.tsapp/api/core/index.tsxAuthorization do axios instance.api.setAuthToken(token) para setar/remover o token.api.getAuthToken() para checar se existe token.useApiQuery é o caminho principal para GET e POST com cache:
api.get ou api.post.queryKey com url e params.mapResult, staleTime, gcTime e requireAuth.useApiQueries lida com multiplos GETs em paralelo (lista de params).
Arquivo: app/api/utils/index.ts.
As chamadas sao organizadas por dominio:
app/api/calls/ContractsSummary/index.tsapp/api/calls/RetailChains/index.tsExemplo real:
export const useContractsDetailed = (filters?: string[]) =>
useApiQuery<ContractsSummaryTotal>("/rebates-results/complete", {
params: { filters },
});
ApiError e mantém status, headers, data.isApiError(error).app/api/calls/<Domain>.headers no useApiQuery.