dio_api_version_interceptor 0.0.2 copy "dio_api_version_interceptor: ^0.0.2" to clipboard
dio_api_version_interceptor: ^0.0.2 copied to clipboard

A utility package for Dio. Can intercept response headers to check if app version is compatible with API by listening to a stream, or call a GET method on starting the app.

example/main.dart

import 'dart:async';

import 'package:dio/dio.dart';

import 'package:dio_api_version_interceptor/dio_api_version_interceptor.dart';

late Dio dio;
StreamController<CompatibilityResult> headerResultController =
    StreamController();
String appVersion = '1.0.0';

Future<void> main() async {
  final result = await checkApiIfCompatible();
  print(result);

  checkHeaderIfCompatible().listen((event) {
    print(event);
  });

  await dio.get('/v3/effe231a-5648-484d-a0a8-919a98fabd36');
  await dio.get('/v3/ff2fc409-b519-4fb6-881d-066655b934b9');
}

Future<CompatibilityApiResult> checkApiIfCompatible() async {
  return Dio(BaseOptions(baseUrl: 'https://run.mocky.io'))
      .checkCompatibilityMapped(
    path: '/v3/bb2dd989-d94a-46b8-9cdc-76d32a979dc3',
    appVersion: appVersion,
  );
}

Stream<CompatibilityResult> checkHeaderIfCompatible() {
  final interceptor = ApiVersionHeaderInterceptor(
    streamController: headerResultController,
    appVersion: appVersion,
    minSupportedVersion: VersionSupportType.minor,
  );
  dio = Dio(BaseOptions(baseUrl: 'https://run.mocky.io'))
    ..interceptors.add(interceptor);

  return headerResultController.stream;
}
0
likes
130
pub points
0%
popularity

Publisher

unverified uploader

A utility package for Dio. Can intercept response headers to check if app version is compatible with API by listening to a stream, or call a GET method on starting the app.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

dio, equatable

More

Packages that depend on dio_api_version_interceptor