network_manager 0.1.36 copy "network_manager: ^0.1.36" to clipboard
network_manager: ^0.1.36 copied to clipboard

A Network Manager package based on dio for easy REST API management

network_manager #

A Network Manager package based on dio for easy REST API management

Getting Started #

A Network Manager package based on dio for easy REST API management there is just some functionality written for using post and get api easily

Usage1 #

it's suggested that initialize network manager at some entry point in app you can set BaseUrl, TimeOut, and some pre-written function that will be called on every request : onStartDefault, onEndDefault, onSuccessDefault, onFailedDefault.

    initializeNetworkManager({String token, @required String baseURL}) {
      NetworkOption.initialize(
          baseUrl: baseURL,
          timeout: 30000,
          token: token,
          headers: {
            'Content-Type': 'application/json',
            "Authorization": "Bearer $token",
          },
          onStartDefault: (req) {
            print("Start");
          },
          onEndDefault: (req) {
            print("End");
          },
          onSuccessDefault: (res) {
            print("Success");
          },
          onFailedDefault: (NetworkResponse res) {
            print("Failed");
          },
          errorMsgExtractor: (res) {
            return res["Message"] ?? "Unknown Error";
          },
          successMsgExtractor: (res) {
            return res["Message"] ?? "Done";
          });
    }

every Network Request returns a Future

class NetworkResponse {
  final bool responseStatus;
  final int responseCode;
  final String responseTitle;
  Function retryFunction;
  dynamic responseBody;
  dynamic responseDetails;
  String extractedMessage;

  NetworkResponse(
      {this.responseStatus,
        this.responseCode,
        this.responseTitle,
        this.responseBody,
        this.retryFunction,
        this.responseDetails,
        this.extractedMessage});

  @override
  String toString() {
    return "$responseCode $responseTitle : $extractedMessage";
  }
}

and responseBody is JsonDecode of base dio response.data

Example #

every where you want to make a request you can do as follows:

final Map<String,dynamic> req ={
      "Username": "test",
      "Password": "test",
    };

    NetworkManager networkManager = NetworkManager.instance(
      context: context,
      onSuccess: (context,response)=>print("OnSuccessCalled"),
      req: req,
      api: Apis.login
    );
    networkManager.requestPost();

Usage2 #

it's suggested that initialize network manager at some entry point in app you can set BaseUrl, TimeOut, and some pre-written function that will be called on every request : onStartDefault, onEndDefault, onSuccessDefault, onFailedDefault.

      initializeNetworkManager() {
        /// initialize network manager
        NetworkManagerMetaData.initialize(
            baseUrl: "http://example.com",
            timeout: 30000,
            token: token,
            headers: {
              'Content-Type': "application/json",
            },
            onStartDefault: () {
              print("Start");
            },
            onEndDefault: () {
              print("End");
            },
            onSuccessDefault: () {
              print("Success");
            },
            onFailedDefault: () {
              print("Failed");
            },
            successRules: (result) {
              return (result["Status"] ?? -1) > 0;
            },
            tokenExpireRules: (resultJson) {
              return (resultJson["Status"] == -999);
            },
            onTokenExpire: (retryFunction) {
              print("Failed");
              // can call retry function
            },
            useFancyDialog: true,
            errorMsgExtractor: (result) {
              return result["Message"] ?? "Unknown Error";
            });
      }

Example #

every where you want to make a request you can do as follows:

final Map<String,dynamic> req ={
      "Username": "test",
      "Password": "test",
    };

    NetworkManager networkManager = NetworkManager.instance(
      context: context,
      onSuccess: (context,response)=>print("OnSuccessCalled"),
      req: req,
      api: Apis.login
    );
    networkManager.requestPost();
17
likes
110
points
815
downloads

Publisher

verified publisherabomis.com

Weekly Downloads

A Network Manager package based on dio for easy REST API management

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

archive, convert, flutter, http, http_status_code

More

Packages that depend on network_manager