使用swift5.0 基于Restful接口規(guī)范,對(duì)網(wǎng)絡(luò)層Alamofire铲球、圖片上傳到AliyunOSSiOS的二次封裝野蝇。
網(wǎng)絡(luò)層:
只需要調(diào)用簡(jiǎn)單接口,可完成數(shù)據(jù)的請(qǐng)求谅年。
利用swift語法特性茧痒,實(shí)現(xiàn)閉包 + 鏈?zhǔn)秸{(diào)用的方式,完成數(shù)據(jù)請(qǐng)求融蹂。
圖片上傳:
只需要調(diào)用簡(jiǎn)單接口旺订,可完成圖片上傳。
利用網(wǎng)絡(luò)層獲取到credential后超燃,使用封裝接口区拳,可生成client。
靜態(tài)方法實(shí)現(xiàn)圖片上傳意乓。
利用二分法對(duì)圖片壓縮處理樱调。
舉例
//MARK: 上傳圖片
//MARK: NetworkManager get請(qǐng)求舉例
NetworkManager.startRequest { manager -> NetworkManager in
manager.requestType(.get)
.url("ossConfig")
.origialData(origialData: { (jsonString, reponseData) in
print("請(qǐng)求到的原始數(shù)據(jù)",jsonString as Any, reponseData)
})
.success { data in
print("成功獲取到success['data']的數(shù)據(jù)")
//MARK: 解析舉例:使用結(jié)構(gòu)體模型的可選類型,作為參數(shù)
let credential: CredentialModel? = SECodable.decoder(data: data)
print(credential as Any)
// MARK: UploadManager 阿里云oss圖片上傳舉例
guard let client = UploadManager.createCredential(with: credential) else { return }
UploadManager.uploadImages([UIImage()], client: client, bucketName: "xxxx") { imagePaths in
print(imagePaths)
} failure: { code in
print(code)
}
}.failure { (code, msg) in
print("錯(cuò)誤碼:\(code ?? 0)届良,錯(cuò)誤信息:\(msg)")
}
}