KeystoneNetwork class

Main KeystoneNetwork configuration class

This is OPTIONAL - developers can still use Dio directly. KeystoneNetwork provides a convenient way to configure and manage Dio instances.

Features:

  • Simple initialization
  • Pre-configured defaults
  • Interceptor management
  • Multiple instance support
  • DioProvider integration for interceptors

Example:

// Initialize once in main()
KeystoneNetwork.initialize(
  baseUrl: 'https://api.example.com',
  interceptors: [
    AuthInterceptor(
      tokenManager: myTokenManager,
      dioProvider: KeystoneNetwork.dioProvider,
    ),
    LoggingInterceptor(),
  ],
);

// Use anywhere in your app
final response = await KeystoneNetwork.dio.get('/users');

// Or with ApiExecutor
final result = await ApiExecutor.execute<User, dynamic>(
  request: () => KeystoneNetwork.dio.get('/user/me'),
  parser: (json) => User.fromJson(json),
);

Constructors

KeystoneNetwork()

Properties

hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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

Static Properties

dio → Dio
Get the configured Dio instance
no setter
dioProvider → DioProvider
Get the DioProvider for use with interceptors
no setter

Static Methods

createDioProvider(Dio dio) → DioProvider
Create a DioProvider for a custom Dio instance
createInstance({required String baseUrl, Duration connectTimeout = const Duration(seconds: 30), Duration receiveTimeout = const Duration(seconds: 30), Duration sendTimeout = const Duration(seconds: 30), Map<String, dynamic>? headers, List<Interceptor> interceptors = const [], ResponseType responseType = ResponseType.json, bool validateStatus(int?)?}) → Dio
Create a new Dio instance for multiple API endpoints
initialize({String? baseUrl, Duration connectTimeout = const Duration(seconds: 30), Duration receiveTimeout = const Duration(seconds: 30), Duration sendTimeout = const Duration(seconds: 30), Map<String, dynamic>? headers, List<Interceptor> interceptors = const [], ResponseType responseType = ResponseType.json, bool validateStatus(int?)?}) → void
Initialize KeystoneNetwork with configuration
reset() → void
Reset KeystoneNetwork (for testing purposes only)