RaAPIWrapper
RaAPIWrapper
利用 @propertyWrapper
来实现类似于 Android Retrofit
库中定义网络请求的效果。
在同一个文件中包含大量的网络请求接口时,RaAPIWrapper
可以帮助您以更聚合的形式定义每一个请求,让您不用在文件内来回跳转。
说在前面
特别注意!:RaAPIWrapper
仅仅是一个定义网络请求的语法糖。您需要在此基础上借助 Alamofire
、Moya
、其他第三方网络框架或者直接调用 URLSession
来发起网络请求。
好的一点是,您只需要修改少量的代码,甚至无需修改代码,就可以很简单地将 RaAPIWrapper
集成进您已有的项目,RaAPIWrapper
可以很好的和您项目中现有的网络框架共存。
基本要求
- 运行 iOS 11、macOS 10.13、watchOS 4.0、tvOS 11 及以上版本的设备。
- 使用 Xcode 14 及以上版本编译运行。
- Swift 5.7 及以上版本。
示例
@GET("/api/v1/no_param")
static var noParamAPI: APIParameterBuilder<()>? = nil
@POST("/api/v1/tuple_param")
static var tupleParamAPI: APIParameterBuilder<(id: Int, name: String?)>? = .init {
// 字典和数组可直接作为参数使用
["id": $0.id, "name": $0.name]
}
@POST("/post")
static var postWithModel: APIParameterBuilder<Arg>? = .init {
// 当参数 `Arg` 遵守 `APIParameter`(`Encodable & Hashable`) 协议时,可直接作为参数使用。
$0
}
安装
CocoaPods
pod 'RaAPIWrapper'
如果您的项目依赖了 Alamofire
,那么您还可以考虑依赖 RaAPIWrapper/AF
。该模块提供了针对 ParameterEncoding
的封装。
Swift Package Manager
或者将下面的内容添加到 Package.swift
文件中:
dependencies: [
.package(
url: "https://github.com/RakuyoKit/RaAPIWrapper.git",
.upToNextMajor(from: "1.1.1")
)
]
使用
请参考 Demo.playground
中的示例。
因为 playground 以 Swift Package Manager 的形式依赖 RaAPIWrapper
,所以请先通过 Package.swift
打开项目,再从左侧的导航栏中选择 Demo.playground
,运行相关内容。
License
RaAPIWrapper
在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。
RaAPIWrapper
RaAPIWrapper
利用@propertyWrapper
来实现类似于 AndroidRetrofit
库中定义网络请求的效果。在同一个文件中包含大量的网络请求接口时,
RaAPIWrapper
可以帮助您以更聚合的形式定义每一个请求,让您不用在文件内来回跳转。说在前面
特别注意!:
RaAPIWrapper
仅仅是一个定义网络请求的语法糖。您需要在此基础上借助Alamofire
、Moya
、其他第三方网络框架或者直接调用URLSession
来发起网络请求。好的一点是,您只需要修改少量的代码,甚至无需修改代码,就可以很简单地将
RaAPIWrapper
集成进您已有的项目,RaAPIWrapper
可以很好的和您项目中现有的网络框架共存。基本要求
示例
安装
CocoaPods
如果您的项目依赖了
Alamofire
,那么您还可以考虑依赖RaAPIWrapper/AF
。该模块提供了针对ParameterEncoding
的封装。Swift Package Manager
或者将下面的内容添加到
Package.swift
文件中:使用
请参考
Demo.playground
中的示例。License
RaAPIWrapper
在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。