API Client API
Complete reference for the API client methods and types.
createApiClient
Creates a new API client instance.
function createApiClient(config?: Partial<WebdriverIO.Config> | ApiClientOptions): ApiClient
Parameters
| Parameter | Type | Description |
|---|---|---|
config | Partial<WebdriverIO.Config> | ApiClientOptions | Configuration options |
Returns
ApiClient - The API client instance
Example
import { createApiClient } from 'wdio-api-runner'
const api = createApiClient({
baseUrl: 'https://api.example.com',
timeout: 30000
})
HTTP Methods
get
get<T>(url: string, options?: RequestOptions): Promise<ApiResponse<T>>
post
post<T>(url: string, body?: any, options?: RequestOptions): Promise<ApiResponse<T>>
put
put<T>(url: string, body?: any, options?: RequestOptions): Promise<ApiResponse<T>>
patch
patch<T>(url: string, body?: any, options?: RequestOptions): Promise<ApiResponse<T>>
delete
delete<T>(url: string, options?: RequestOptions): Promise<ApiResponse<T>>
head
head(url: string, options?: RequestOptions): Promise<ApiResponse<void>>
options
options(url: string, options?: RequestOptions): Promise<ApiResponse<void>>
request
request<T>(url: string, options?: RequestOptions): Promise<ApiResponse<T>>
Configuration Methods
setBaseUrl
Sets the base URL for all requests.
setBaseUrl(url: string): void
getBaseUrl
Gets the current base URL.
getBaseUrl(): string
setHeader
Sets a single header.
setHeader(name: string, value: string): void
setHeaders
Sets multiple headers.
setHeaders(headers: Record<string, string>): void
removeHeader
Removes a header.
removeHeader(name: string): void
getHeaders
Gets all current headers.
getHeaders(): Record<string, string>
Interceptors
addRequestInterceptor
Adds a request interceptor.
addRequestInterceptor(interceptor: RequestInterceptor): void
addResponseInterceptor
Adds a response interceptor.
addResponseInterceptor(interceptor: ResponseInterceptor): void
clearInterceptors
Clears all interceptors.
clearInterceptors(): void
clearRequestInterceptors
Clears only request interceptors.
clearRequestInterceptors(): void
clearResponseInterceptors
Clears only response interceptors.
clearResponseInterceptors(): void
Types
ApiResponse
interface ApiResponse<T> {
status: number
statusText: string
headers: Headers
data: T
ok: boolean
duration: number
}
RequestOptions
interface RequestOptions extends RequestInit {
timeout?: number
retries?: number
retryDelay?: number
}
ApiClientOptions
interface ApiClientOptions {
baseUrl?: string
timeout?: number
headers?: Record<string, string>
verbose?: boolean
retries?: number
retryDelay?: number
}
RequestInterceptor
type RequestInterceptor = (
url: string,
options: RequestInit
) => Promise<RequestInit & { url?: string }>
ResponseInterceptor
type ResponseInterceptor = <T>(
response: ApiResponse<T>
) => Promise<ApiResponse<T>>