HTTP
Panoramica
Il layer HTTP di @pzeta/postgrest fornisce un'astrazione (IHttpClient) con due implementazioni complementari e un set di utility per autenticazione, retry automatico su 401 e gestione CORS.
FetchHttpClient (zero dipendenze) o crea il client tramite HttpClientFactory. AxiosHttpClient e StrategyAwareHttpClient coprono casi specifici.Implementazioni disponibili
| Componente | Quando usarlo |
|---|---|
FetchHttpClient | Default consigliato. Zero dipendenze, basato su Fetch API nativa, bundle size minimo, supporto Service Worker. |
AxiosHttpClient | Quando il progetto già usa Axios o servono interceptors avanzati, progress tracking upload/download, cancellazione richieste Axios-specifica. |
StrategyAwareHttpClient | Wrapper su Axios che integra una IAuthStrategy moderna mantenendo backward compatibility con IAuthHandler legacy. |
HttpClientFactory | Factory centrale per creare client preconfigurati: JWT, Cookie, pubblici, auth-only. Espone anche getDefaultHttpClient() (singleton) e createHttpClient(type, config). |
CorsAdapter | Configurazione esplicita per richieste cross-origin: CorsConfig, ICorsAdapter, CorsAdapterFactory con preset di sviluppo. |
Interfaccia comune
Tutte le implementazioni rispettano la stessa interfaccia IHttpClient:
interface IHttpClient {
request<T = unknown>(config: AxiosRequestConfig): Promise<AxiosResponse<T>>
get<T = unknown>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>
post<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>
put<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>
patch<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>
delete<T = unknown>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T>>
setAuthHandler(handler: IAuthHandler): void
getAxiosInstance(): AxiosInstance
}
Il tipo di ritorno è sempre AxiosResponse<T> anche per FetchHttpClient, che converte internamente la Response nativa tramite FetchAdapter.
Pagine
AxiosHttpClient
Client HTTP basato su Axios (peer dependency opzionale). Ideale quando servono interceptors, progress tracking o quando il progetto già usa Axios.
CorsAdapter
Adapter per configurazione CORS cross-origin. Fornisce CorsConfig, ICorsAdapter, CorsAdapter e CorsAdapterFactory con preset per sviluppo.
FetchHttpClient
Client HTTP zero-dipendenze basato su Fetch API nativa. Compatibile con interfaccia Axios tramite FetchAdapter. Supporta auth strategy, retry su 401 e timeout.
HttpClientFactory
Factory centrale per creare client HTTP preconfigurati. Espone createFetchClient, createAxiosClient, createJwtClient, createCookieClient, createPublicClient, getDefaultHttpClient e createHttpClient.
StrategyAwareHttpClient
Client HTTP basato su Axios che integra IAuthStrategy moderna mantenendo backward compatibility con IAuthHandler legacy.
Interfaces
Contratti del domain layer — IAuthHandler, IAuthService, IAuthStrategy, ICacheService, ICacheStrategy, ICrudRepository, IHttpClient, ILogger. Punti di estensione e DI.
AxiosHttpClient
Client HTTP basato su Axios (peer dependency opzionale). Ideale quando servono interceptors, progress tracking o quando il progetto già usa Axios.