Overview
CallApi provides extensive configuration options that control request behavior, error handling, caching, retries, and more. This guide covers advanced configuration patterns and options.Configuration Hierarchy
CallApi merges configuration from three levels:Result Modes
Control how CallApi returns results:Result Mode Options
Result Mode Options
all (default)Returns onlyDataReturns only the parsed data:onlyResponseReturns only the Response object:fetchApiReturns Response and skips internal parsing/validation:withoutResponseReturns Source: types/common.ts:381-398
{ data, error, response } with complete information:{ data, error } without the response object:Response Types
Specify how to parse response bodies:Error Handling
throwOnError
Control whether errors are thrown or returned:Boolean Mode
Boolean Mode
Function Mode
Function Mode
defaultHTTPErrorMessage
Customize error messages:Request Deduplication
Prevent duplicate concurrent requests:Dedupe Strategy Options
Dedupe Strategy Options
cancel (default)Cancels new requests if an identical one is in flight:deferDefers new requests to the in-flight one:ignoreDisables deduplication:Source: dedupe.ts:1-15
Dedupe Configuration
Dedupe Configuration
dedupeCacheScopeControl cache scope:dedupeCacheScopeKeyNamespace for global cache:dedupeKeyCustom key generation:Source: constants/defaults.ts:11-17
Retry Configuration
Automatically retry failed requests:Retry Options
Retry Options
retryAttemptsNumber of retry attempts:retryDelayDelay between retries (milliseconds):retryMaxDelayMaximum delay for exponential backoff:retryStrategyBackoff strategy:retryMethodsHTTP methods to retry:retryStatusCodesStatus codes that trigger retry:retryConditionCustom retry logic:Source: constants/defaults.ts:28-35
Custom Fetch Implementation
Replace the fetch function:Body Serialization
Customize request body serialization:Response Parsing
Custom response parsing:Skip Auto Merge
Control configuration merging behavior:Skip Auto Merge Options
Skip Auto Merge Options
skipAutoMergeFor: “all”Manually control all merging:skipAutoMergeFor: “options”Manual control of extra options:skipAutoMergeFor: “request”Manual control of request options:Source: types/common.ts:523-589
Metadata
Attach custom metadata to requests:Timeout Configuration
Set request timeout limits:Clone Response
Enable response cloning for multiple reads:Hook Execution Mode
Control hook execution order:Dynamic Configuration
Compute configuration at runtime:Best Practices
Use Appropriate Result Modes
Use Appropriate Result Modes
Choose the right result mode for your use case:
Configure Retries Wisely
Configure Retries Wisely
Retry safely:
Set Reasonable Timeouts
Set Reasonable Timeouts
Balance responsiveness and reliability:
Use Dedupe for Expensive Operations
Use Dedupe for Expensive Operations
Prevent wasteful requests: