Moya-Pretty 4.0.0-alpha.2

Moya-Pretty 4.0.0-alpha.2

ObiCat 维护。



Moya-Pretty 4.0.0-alpha.2

Moya-Pretty

Build Status Version License Platform Swift 4.1

Moya-Pretty 提供了许多方便的扩展,如 基于泛型的目标类插件,甚至 RESTful 特性。这使得您可以声明更美观的 Moya 目标,而无需自己再次编写这些扩展。

灵感来源于 MoyaRetrofit👍 👍 👍

Moya-Pretty Overview

用法

简单地,声明您的目标类

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'

作者

[email protected]

许可证

Moya-Pretty 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。