SSeoNetwork
SSeoNetwork是一个无观点的网络框架,只包含最小功能,没有冗余。如果您只需要进行少数几次API调用并且不需要其他功能,那么请使用这个库,因为这个库除了这个之外提供的东西并不多:)
SSeoNetwork提供内存缓存功能。它还缓冲挂起的请求,这意味着如果一个请求正在等待响应,并且SSNetwork接收到另一个相同的请求,它不会发送后续请求,而是简单地等待第一个请求的响应,并将响应返回给所有挂起的相同请求。
SSeoNetwork不使用常规回调,它仅支持Combine。
示例使用。
创建请求类
您可以直接使用SSNetworkRequest
类,或者创建一个子类来封装请求的细节。在下面的示例中,我选择创建SSNetworkRequest
的子类。
class SampleRequest: SSNetworkRequest<DataModel> {
init() {
super.init(baseUrl: baseUrl, path: ["version", "sample", "path"], method: .GET)
addQuery(key: key1, value: value1)
addQuery(key: key2, value: value2)
// or setQuery([key1: value1, key2: value2])
setAuthToken(token)
// or setApiKey(key, name: yourKeyName)
setCacheDuration(120) // in seconds
}
}
调用API
let request = SampleRequest()
SSNetworkManager.shared.makeServiceCall(forRequest: request)
.sink { (_) in
// remove the sub that SSNetworkManager has been keeping for you
SSNetworkManager.shared.unregisterSubscriber(forRequest: request)
} receiveValue: { [weak self] (user) in
self?.otherUser = user
}
.store(in &yourDisposeBag)