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