This package contains some base classes designed to improve experience of using Http networking functionality.

Contents

  • Custom api client based on Dio
  • Custom error handling technics

Networking

Create a new api client:


final dioClientModule = _DioClientModule();
final apiClient = dioClientModule.makeApiClient(
    ApiClientParams(
    baseUrl: 'https://jsonplaceholder.typicode.com/',
    defaultConnectTimeout: 5000,
    defaultReceiveTimeout: 5000,
    interceptors: [LogInterceptor()],
    ),
);

Create request processor:


final processor = dioClientModule.makeDioRequestProcessor();

Make a request:


onCustomError: (response) {
    final responseType = response?.requestOptions.responseType;
     if (responseType == ResponseType.json) {
        return MyResponse.fromJson(response.data);
    }
    return MyError.unknownError();
}

Handle result or error from DataResponse class response:


if (response.isSuccess()) {
    final data = response.data;
    ...
} else {
    // process and error
}

Libraries

onix_flutter_core