SSeoNetwork 1.0.0

SSeoNetwork 1.0.0

Son Nguyen维护。



  • Son Nguyen

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)