Merge branch release/1.1.1
RaAPIWrapper 利用 @propertyWrapper 来实现类似于 Android Retrofit 库中定义网络请求的效果。
RaAPIWrapper
@propertyWrapper
Retrofit
在同一个文件中包含大量的网络请求接口时,RaAPIWrapper 可以帮助您以更聚合的形式定义每一个请求,让您不用在文件内来回跳转。
特别注意!:RaAPIWrapper 仅仅是一个定义网络请求的语法糖。您需要在此基础上借助 Alamofire、Moya 、其他第三方网络框架或者直接调用 URLSession 来发起网络请求。
Alamofire
Moya
URLSession
好的一点是,您只需要修改少量的代码,甚至无需修改代码,就可以很简单地将 RaAPIWrapper 集成进您已有的项目,RaAPIWrapper 可以很好的和您项目中现有的网络框架共存。
@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 }
pod 'RaAPIWrapper'
如果您的项目依赖了 Alamofire,那么您还可以考虑依赖 RaAPIWrapper/AF。该模块提供了针对 ParameterEncoding 的封装。
RaAPIWrapper/AF
ParameterEncoding
或者将下面的内容添加到 Package.swift 文件中:
Package.swift
dependencies: [ .package( url: "https://github.com/RakuyoKit/RaAPIWrapper.git", .upToNextMajor(from: "1.1.1") ) ]
请参考 Demo.playground 中的示例。
Demo.playground
因为 playground 以 Swift Package Manager 的形式依赖 RaAPIWrapper,所以请先通过 Package.swift 打开项目,再从左侧的导航栏中选择 Demo.playground,运行相关内容。
RaAPIWrapper 在 MIT 许可下可用。 有关更多信息,请参见 LICENSE 文件。
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
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 文件。