Moya-Pretty
Moya-Pretty
提供了许多方便的扩展,如 基于泛型的目标类、插件,甚至 RESTful 特性。这使得您可以声明更美观的 Moya 目标,而无需自己再次编写这些扩展。
用法
简单地,声明您的目标类
struct PetService {
class PostPetThenResponsePet: CodableTarget<Pet, Pet>, BaseTargetType {
var method = Method.post
var path = "pet/"
}
class PostPetOnly: EncodableTarget<Pet>, BaseTargetType {
var method = Method.post
var path = "pet/"
}
class GetPets: DecodableTarget<[Pet]>, BaseTargetType {
var method = Method.get
var path = "pet/"
}
}
然后执行它
let provider = MoyaProvider<PetService.AddPet>()
let pet = Pet(id: 1, name: "Obi")
let target = PetService.AddPet(body: pet)
provider.requestModel(target, completion: { (result) in
switch result {
case .success(let pet):
// Pet model here 🎉 🎉 🎉
print(pet.name)
case .failure(let error):
fail(error.localizedDescription)
}
)
文档
泛型目标
Codable
- 解码、编码 Json。
- CodableTarget
- EncodableTarget
- DecodableTarget
ObjectMapper
- json, xml, dictionary mapping。
- MappableTarget
- MappableBodyTarget
- MappableResponseTarget
- XMLTargetType
插件
有用的插件
- AcceptHeaderPlugin
- 灵活访问令牌插件
- 国际化插件
RESTful
常见的RESTful属性
- 可筛选的目标
- 表单提交目标
RxSwift
安装
pod 'Moya-Pretty/RxSwift'
执行
let provider = MoyaProvider<PetService.AddPet>()
let pet = Pet(id: 1, name: "Obi")
let target = PetService.AddPet(body: pet)
provider.rx.requestModel(target).subscribe { event in
switch event {
case let .success(pet):
// Pet model here 🎉 🎉 🎉
print(pet.name)
case let .error(error):
print(error)
}
}
ReactiveSwift
安装
pod 'Moya-Pretty/ReactiveSwift'
执行
let provider = MoyaProvider<PetService.AddPet>()
let pet = Pet(id: 1, name: "Obi")
let target = PetService.AddPet(body: pet)
provider.reactive.requestModel(target).start { event in
switch event {
case .value(let pet):
// Pet model here 🎉 🎉 🎉
print(pet.name)
case .failed(let error):
print(error)
default:
break
}
}
PromiseKit
安装
pod 'Moya-Pretty/PromiseKit'
执行
let provider = MoyaProvider<PetService.AddPet>()
let pet = Pet(id: 1, name: "Obi")
let target = PetService.AddPet(body: pet)
firstly {
provider.requestModel(target)
}.done { (pet) in
// Pet model here 🎉 🎉 🎉
print(pet.name)
}.catch{ (error) in
print(error)
}
示例
pod try Moya-Pretty
安装
Moya-Pretty 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'Moya-Pretty'
pod 'Moya-Pretty/ObjectMapper'
pod 'Moya-Pretty/RxSwift'
pod 'Moya-Pretty/ReactiveSwift'
pod 'Moya-Pretty/PromiseKit'
pod 'Moya-Pretty/RESTful'
pod 'Moya-Pretty/Plugins'
作者
许可证
Moya-Pretty 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。