ApiKit class

A reusable API client for HTTP requests.

Inheritance

Constructors

ApiKit({required String baseUrl, String? token, int maxRetries = defaultMaxRetries, int retryDelayBase = defaultRetryDelayBaseMs, bool checkConnectivity = true, bool useCache = false, int cacheMaxAge = defaultCacheMaxAgeSeconds, int connectTimeout = defaultTimeoutMs, int receiveTimeout = defaultTimeoutMs, int sendTimeout = defaultTimeoutMs, ConnectivityChecker? connectivityChecker, TokenRefresher? tokenRefresher, ApiLogger? logger, CacheStore? cacheStore, Dio? dio})
Creates an API client configured with the provided base URL and options.

Properties

baseUrl → String
The base URL for API requests.
finalinherited
cacheMaxAge → int
Maximum age of cached items in seconds.
finalinherited
checkConnectivity → bool
Whether to check connectivity before making requests.
finalinherited
connectTimeout → int
Connection timeout in milliseconds.
finalinherited
defaultHeaders ↔ Map<String, dynamic>
Default headers for all requests.
getter/setter pairinherited
hashCode → int
The hash code for this object.
no setterinherited
headerName → String
The header name for the token.
finalinherited
maxRetries → int
Maximum number of retries for failed requests.
finalinherited
receiveTimeout → int
Receive timeout in milliseconds.
finalinherited
retryDelayBase → int
Base delay for retry attempts in milliseconds.
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sendTimeout → int
Send timeout in milliseconds.
finalinherited
token ↔ String?
The current auth token.
getter/setter pairinherited
tokenType → String
The token type (e.g., 'Bearer').
finalinherited
useCache → bool
Whether to use caching for GET requests.
finalinherited

Methods

addDioInterceptor(Interceptor interceptor) → void
Add a Dio interceptor directly.
inherited
addInterceptor({Future<RequestOptions> onRequest(RequestOptions options)?, Future<Response> onResponse(Response response)?, Future<DioException> onError(DioException error)?}) → void
Add a flexible interceptor to the Dio client.
inherited
clearCache() → void
Clear the cache.
inherited
clearInterceptors() → void
Remove all user-added interceptors while preserving the internal auth and token-refresh interceptors.
inherited
clearToken() → void
Clears the token.
inherited
delete<T>(String path, {required T parser(Map<String, dynamic>), dynamic data, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken}) → Future<T>
DELETE with custom parser.
inherited
downloadFile(String url, String savePath, {Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onReceiveProgress}) → Future<void>
Download a file.
inherited
get<T>(String path, {required JsonParser<T> parser, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onReceiveProgress, bool useCache = true}) → Future<T>
Generic GET with custom parser.
inherited
getList(String path, {Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onReceiveProgress, bool useCache = true}) → Future<List<Map<String, dynamic>>>
GET and parse as List<Map<String, dynamic>>.
inherited
getMap(String path, {Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onReceiveProgress, bool useCache = true}) → Future<Map<String, dynamic>>
GET and parse as Map<String, dynamic>.
inherited
getPaginated<T>(String path, {required T parser(Map<String, dynamic>), Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onReceiveProgress, bool useCache = true, PaginationConfig? paginationConfig, PaginationStrategy? paginationStrategy}) → Future<PaginatedResponse<T>>
Generic GET for paginated responses.
inherited
getRaw(String path, {Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onReceiveProgress, bool useCache = true}) → Future<Response>
GET and return raw Dio Response.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
patch<T>(String path, {required T parser(Map<String, dynamic>), dynamic data, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onSendProgress, ProgressCallback? onReceiveProgress}) → Future<T>
PATCH with custom parser.
inherited
post<T>(String path, {required JsonParser<T> parser, dynamic data, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onSendProgress, ProgressCallback? onReceiveProgress}) → Future<T>
Generic POST with custom parser.
inherited
postList(String path, {dynamic data, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onSendProgress, ProgressCallback? onReceiveProgress}) → Future<List<Map<String, dynamic>>>
POST and parse as List<Map<String, dynamic>>.
inherited
postMap(String path, {dynamic data, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onSendProgress, ProgressCallback? onReceiveProgress}) → Future<Map<String, dynamic>>
POST and parse as Map<String, dynamic>.
inherited
put<T>(String path, {required T parser(Map<String, dynamic>), dynamic data, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onSendProgress, ProgressCallback? onReceiveProgress}) → Future<T>
PUT with custom parser.
inherited
toString() → String
A string representation of this object.
inherited
updateTimeouts({int? connectTimeout, int? receiveTimeout, int? sendTimeout}) → void
Update timeout settings.
inherited
uploadFile<T>(String path, String filePath, String fieldName, {required JsonParser<T> parser, Map<String, dynamic>? additionalData, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onSendProgress}) → Future<T>
Upload a file.
inherited
uploadFiles<T>(String path, List<String> filePaths, String fieldName, {required JsonParser<T> parser, Map<String, dynamic>? additionalData, Map<String, dynamic>? queryParameters, Map<String, dynamic>? headers, Options? options, CancelToken? cancelToken, ProgressCallback? onSendProgress}) → Future<T>
Upload multiple files using the same multipart field name.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited