flutter_network_layer_dio 0.4.0 copy "flutter_network_layer_dio: ^0.4.0" to clipboard
flutter_network_layer_dio: ^0.4.0 copied to clipboard

Dio implementation for flutter_network_layer_core. Uses the dio package to make network requests.

example/main.dart

// ignore_for_file: avoid_print just an example

import 'package:flutter_network_layer_dio/flutter_network_layer_dio.dart';

void main() async {
  await AppNetworkManager.networkInvoker.init(
    'https://jsonplaceholder.typicode.com',
  );
  final request = RequestUser(id: 1);
  final response = await AppNetworkManager.networkInvoker.request(request);
  response.when(
    success: (response) {
      print('DATA: ${response.data}');
    },
    error: (response) {
      print('ERROR: ${response.message}');
    },
  );
}

abstract final class AppNetworkManager {
  static final INetworkInvoker networkInvoker =
      DioNetworkInvoker(onLog: _onLog);

  static void _onLog(NetworkLog log) {
    print('[${log.type}] ${log.message}');
  }
}

final class ResponseUser extends JsonResponseModel {
  const ResponseUser({
    required this.id,
    required this.name,
  });

  const ResponseUser.empty()
      : id = 0,
        name = '';

  final int id;
  final String name;

  @override
  ResponseUser fromJson(dynamic json) {
    assert(json is Map<String, dynamic>, 'json is not a Map<String, dynamic>');
    final map = json as Map<String, dynamic>;

    return ResponseUser(
      id: map['id'] as int,
      name: map['name'] as String,
    );
  }

  @override
  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'name': name,
    };
  }

  @override
  String toString() => toJson().toString();
}

final class RequestUser extends RequestCommand<ResponseUser> {
  RequestUser({
    required this.id,
  });

  final int id;

  @override
  String get path => '/users/$id';

  @override
  ResponseUser get sampleModel => const ResponseUser.empty();
}
1
likes
160
points
70
downloads

Publisher

verified publisherfemrek.me

Weekly Downloads

Dio implementation for flutter_network_layer_core. Uses the dio package to make network requests.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

dio, flutter_network_layer_core

More

Packages that depend on flutter_network_layer_dio