EasyPostApi
要求
- iOS 9.0+ / Mac OS X 10.11+
- Xcode 10.2+
- Swift 5.0+
安装
EasyPostApi 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'EasyPostApi', '~> 1.2'
使用
此库使用 EasyPost JSON API。有关与 EasyPost API 交互的详细信息,请参阅 http://www.easypost.com/docs
设置凭据
在进行后续调用之前,在对API管理器的共享实例上调用set credentials方法。由于它维护调用间的凭据,您只需为共享实例调用此方法一次。
let apiToken = "YOUR-TOKEN"
EasyPostApi.sharedInstance.setCredentials(apiToken, baseUrl: "https://api.easypost.com/v2/")
发表地址
保存地址记录并获取ID
let address = EasyPostAddress()
address.name = "Johnny Appleseed"
address.company = "Apple"
address.street1 = "1 Infinite Loop"
address.street2 = "Suite 1"
address.city = "Cupertino"
address.state = "CA"
EasyPostApi.sharedInstance.postAddress(address) { (result) -> () in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
switch(result) {
case .Success(let value):
print("Successfully posted address.")
case .Failure(let error):
print("Error posting address: \((error as NSError).localizedDescription)")
}
})
}
验证地址
在API中发布地址后,使用verify调用验证地址,地址ID由API返回。
let addressId = "address-id-from-posting-address"
EasyPostApi.sharedInstance.verifyAddress(addressId, completion: { (verifyResult) -> () in
dispatch_async(dispatch_get_main_queue(), { () -> Void in
switch(verifyResult) {
case .Success(let easyPostAddress):
print("Successfully verified address.")
case .Failure(let error):
print("Error verifying address: \((error as NSError).localizedDescription)")
}
})
})
发布货物
保存货物记录,包括目的地地址、出发地址和包裹。
let toAddress = EasyPostAddress()
toAddress.name = "Johnny Appleseed"
toAddress.company = "Apple"
toAddress.street1 = "1 Infinite Loop"
toAddress.street2 = "Suite 1"
toAddress.city = "Cupertino"
toAddress.state = "CA"
let fromAddress = EasyPostAddress()
fromAddress.name = "Johnny Appleseed"
fromAddress.company = "Apple"
fromAddress.street1 = "1 Infinite Loop"
fromAddress.street2 = "Suite 1"
fromAddress.city = "Cupertino"
fromAddress.state = "CA"
let parcel = EasyPostParcel()
parcel.length = NSNumber(value:10.0) //inches
parcel.width = NSNumber(value:10.0) //inches
parcel.height = NSNumber(value:10.0) //inches
parcel.weight = NSNumber(value:10.0) //ounces
EasyPostApi.sharedInstance.postShipment(toAddress, fromAddress: fromAddress, parcel: parcel) { (result) -> () in
DispatchQueue.main.async {
switch(result) {
case .success(let shipment):
print("Successfully posted shipment.")
if let id = shipment.id {
print("Shipment id: \(id)")
}
case .failure(let error):
print("Error posting shipment: \((error as NSError).localizedDescription)")
}
}
}
购买货物
在创建货物记录后,费用记录会包含在货物对象内。您可以调用购买货物并获取带有购买信息的标签URL。
EasyPostApi.sharedInstance.buyShipment("shipment-id", rateId: "rate-id", completion: { (result) -> () in
//Handle results
DispatchQueue.main.async {
if(result.isSuccess) {
print("Successfully bought shipment.")
if let buyResponse = result.value {
if let postageLabel = buyResponse.postageLabel {
if let labelUrl = postageLabel.labelUrl {
print("Label url: \(labelUrl)")
}
}
}
} else {
print("Error buying shipment: \((result.error! as NSError).localizedDescription)")
}
}
})
作者
授权书
EasyPostApi在MIT授权下可用。更多信息请参阅LICENSE文件。
CocoaPods 主仓库
该仓库包含公共的 CocoaPods 规范。