EasyPost Dart
This SDK allows you to interact with the EasyPost API from your Dart application.
Installation
Package is available on pub.dev.
Usage
Full documentation is available on Pub.dev or GitHub
Example
import 'package:easypost/easypost.dart';
Future<void> example() async {
  // Set up the API client
  ClientConfiguration configuration = ClientConfiguration(
    "YOUR_API_KEY",
    apiVersion: ApiVersion.v2,
  );
  Client client = Client(configuration);
  
  // Create a to address
  CreateAddress addressCreateParams = CreateAddress();
  addressCreateParams.street1 = "388 Townsend St";
  addressCreateParams.city = "San Francisco";
  addressCreateParams.state = "CA";
  addressCreateParams.zip = "94107";
  addressCreateParams.country = "US";
  
  Address toAddress = await client.addresses.create(addressCreateParams);
  
  // Create a from address
  addressCreateParams = CreateAddress();
  addressCreateParams.street1 = "388 Townsend St";
  addressCreateParams.city = "San Francisco";
  addressCreateParams.state = "CA";
  addressCreateParams.zip = "94107";
  addressCreateParams.country = "US";
  
  Address fromAddress = await client.addresses.create(addressCreateParams);
  
  // Create a parcel
  CreateParcel parcelsCreateParams = CreateParcel();
  parcelsCreateParams.length = 10.2;
  parcelsCreateParams.width = 7.8;
  parcelsCreateParams.height = 4.3;
  parcelsCreateParams.weight = 21.2;
  
  Parcel parcel = await client.parcels.create(parcelsCreateParams);
  
  // Create a shipment
  CreateShipment shipmentsCreateParams = CreateShipment();
  shipmentsCreateParams.toAddress = toAddress;
  shipmentsCreateParams.fromAddress = fromAddress;
  shipmentsCreateParams.parcel = parcel;
  
  Shipment shipment = await client.shipments.create(shipmentsCreateParams);
  
  // Get the lowest rate for the shipment
  Rate rate = client.shipments.getLowestRateFor(shipment);
  
  // Buy the shipment with the lowest rate
  BuyShipment shipmentBuyParams = BuyShipment();
  shipmentBuyParams.rate = rate;
  
  Shipment purchasedShipment = await client.shipments.buy(shipment.id, shipmentBuyParams);
}
Development
All messages are written with json_serializable so make sure to generate the
files with dart run build_runner build when you make changes and want to test
them.