HttpClient
Source: HttpClient.ts:240
HTTP Client class for making API requests
Remarks
A comprehensive HTTP client with support for:
- All standard HTTP methods
- Request/response interceptors
- Automatic retries
- Timeout handling
- TypeScript generics for type-safe responses
Properties
baseUrl(string) — Base URL for all requestsdefaultHeaders(Record<string, string>, optional) — Default headers for all requestsdefaultTimeout(number, optional) — Default timeout in milliseconds
Example
CODE
Creating and configuring a client:
```typescript
const client = new HttpClient(\{
baseUrl: 'https://api.example.com',
defaultTimeout: 5000,
defaultHeaders: \{
'Content-Type': 'application/json',
'Authorization': 'Bearer token'
\}
\})
// Add request interceptor
client.addRequestInterceptor((config) => \{
config.headers = \{
...config.headers,
'X-Request-ID': generateRequestId()
\}
return config
\})
```CODE
Making requests:
```typescript
// GET request with type safety
const users = await client.get<User[]>('/users')
// POST request with body
const newUser = await client.post<User>('/users', \{
name: 'John',
email: 'john@example.com'
\})
// Request with custom config
const data = await client.get<Data>('/data', \{
timeout: 60000,
retries: 3
\})
```Constructors
new HttpClient(
options: { baseUrl: string; defaultHeaders?: Record<string, string>; defaultTimeout?: number },
): HttpClient
Parameters
options({ baseUrl: string; defaultHeaders?: Record<string, string>; defaultTimeout?: number }) — Client configuration options
Returns
HttpClient
Properties
baseUrl: string
readonly
HttpClient.ts:245Base URL for all requests
Methods
addRequestInterceptor(
interceptor: RequestInterceptor,
): () => void
Adds a request interceptor
Parameters
interceptor(RequestInterceptor) — Interceptor function
Returns
() => void— Function to remove the interceptor
Example
CODE
const remove = client.addRequestInterceptor((config) => {
console.log('Request:', config)
return config
})
// Later: remove the interceptor
remove()addResponseInterceptor<
T = unknown,
>(
interceptor: ResponseInterceptor<T>,
): () => void
Adds a response interceptor
Type Parameters
T=unknown
Parameters
interceptor(ResponseInterceptor<T>) — Interceptor function
Returns
() => void— Function to remove the interceptor
delete<
T = unknown,
>(
path: string,
config?: RequestConfig,
): Promise<HttpResponse<T>>
async
HttpClient.ts:408Performs a DELETE request
Type Parameters
T=unknown— Expected response data type
Parameters
path(string) — Request pathconfig(RequestConfig, optional) — Request configuration
Returns
Promise<HttpResponse<T>>— Promise resolving to the response
get<
T = unknown,
>(
path: string,
config?: RequestConfig,
): Promise<HttpResponse<T>>
async
HttpClient.ts:342Performs a GET request
Type Parameters
T=unknown— Expected response data type
Parameters
path(string) — Request pathconfig(RequestConfig, optional) — Request configuration
Returns
Promise<HttpResponse<T>>— Promise resolving to the response
Example
CODE
const user = await client.get<User>('/users/123')
console.log(user.data.name)patch<
T = unknown,
D = unknown,
>(
path: string,
data?: D,
config?: RequestConfig,
): Promise<HttpResponse<T>>
async
HttpClient.ts:392Performs a PATCH request
Type Parameters
T=unknown— Expected response data typeD=unknown— Request body data type
Parameters
path(string) — Request pathdata(D, optional) — Request body dataconfig(RequestConfig, optional) — Request configuration
Returns
Promise<HttpResponse<T>>— Promise resolving to the response
post<
T = unknown,
D = unknown,
>(
path: string,
data?: D,
config?: RequestConfig,
): Promise<HttpResponse<T>>
async
HttpClient.ts:356Performs a POST request
Type Parameters
T=unknown— Expected response data typeD=unknown— Request body data type
Parameters
path(string) — Request pathdata(D, optional) — Request body dataconfig(RequestConfig, optional) — Request configuration
Returns
Promise<HttpResponse<T>>— Promise resolving to the response
put<
T = unknown,
D = unknown,
>(
path: string,
data?: D,
config?: RequestConfig,
): Promise<HttpResponse<T>>
async
HttpClient.ts:374Performs a PUT request
Type Parameters
T=unknown— Expected response data typeD=unknown— Request body data type
Parameters
path(string) — Request pathdata(D, optional) — Request body dataconfig(RequestConfig, optional) — Request configuration
Returns
Promise<HttpResponse<T>>— Promise resolving to the response