net_kit 1.5.3 copy "net_kit: ^1.5.3" to clipboard
net_kit: ^1.5.3 copied to clipboard

retracted

Network Kit is a library that provides a set of tools to work with network requests.

h)

Contents #

Inspiration #

NetKit was inspired by the popular Vexana package by VB10

Features #

  • Supports various HTTP methods (GET, POST, PUT, DELETE, PATCH)
  • Configurable base URLs for development and production
  • Logging of network requests and responses
  • Error handling and response validation
  • Parsing responses into models or lists of models or void using INetKitModel

Getting started #

Initialize the NetKitManager #

Initialize the NetKitManager with the parameters:

import 'package:net_kit/net_kit.dart';

final netKitManager = NetKitManager(
  baseUrl: 'https://api.<URL>.com',
  devBaseUrl: 'https://dev.<URL>.com',
  loggerEnabled: true,
  testMode: true,
  errorStatusCodeKey: 'status',
  errorMessageKey: 'description',
);

Extend the model #

Requests such as: requestModel andrequestList require the model to extend INetKitModel in order to be used with the NetKitManager.

class TodoModel extends INetKitModel<TodoModel> {}

Sending requests #

Request a Single Model

Future<RandomUserModel> getRandomUser() async {
  try {
    final result = await netKitManager.requestModel<RandomUserModel>(
      path: '/api',
      method: RequestMethod.get,
      model: const RandomUserModel(),
    );
    return result;
  }

  /// Catch the ApiException and handle it
  on ApiException catch (e) {
    /// Handle the error: example is to throw the error
    throw Exception(e.message);
  }
}

Request a List of Models

Future<List<ProductModel>> getProducts() async {
  try {
    final result = await netKitManager.requestList<ProductModel>(
      path: '/products',
      method: RequestMethod.get,
      model: const ProductModel(),
    );
    return result;
  }

  /// Catch the ApiException and handle it
  on ApiException catch (e) {
    /// Handle the error: example is to throw the error
    throw Exception(e.message);
  }
}

Send a void Request

Future<void> deleteProduct() async {
  try {
    await netKitManager.requestVoid(
      path: '/products',
      method: RequestMethod.delete,
    );
    return;
  }

  /// Catch the ApiException and handle it
  on ApiException catch (e) {
    /// Handle the error: example is to throw the error
    throw Exception(e.message);
  }
}

Planned Enhancements #

Feature Status
Internationalization support for error messages
No internet connection handling
Provide basic example
Provide more examples and use cases in the documentation
Multi-part form data support
Refresh Token implementation
Enhance logging capabilities with customizable log levels
Implement retry logic for failed requests
Add more tests to ensure the package is robust and reliable

Contributing #

Contributions are welcome! Please open an issue or submit a pull request.

License #

This project is licensed under the MIT License.

4
likes
0
pub points
47%
popularity

Publisher

verified publisherbehzod.dev

Network Kit is a library that provides a set of tools to work with network requests.

Repository (GitHub)
View/report issues

Topics

#network #network-manager #remote-data #dio

License

unknown (license)

Dependencies

dio

More

Packages that depend on net_kit