Moya进阶说明
2022-03-10 本文已影响0人
柠檬君Air
Moya作为Swift中很受欢迎的一款网络框架,它的基础使用方法在网上可以找到很多教程,这里就不再赘述,今天主要想要记录下moya中的一些容易被忽略却又很好用的用法。
MoyaProvider
初始化moyaProvider时,我们可以看到初始化方法中有很多可选参数
image.png
接下来对每个参数做出解释和常用用法举例
endpointClosure
在这个closure存放了一些moya进行网络请求前的一些数据
image.png
requestClosure
可以从endpoint中拿到request请求进行修改
这个闭包是moya提供给我们对网络请求开始前最后一次机会对请求进行修改,比如设置超时时间(默认是60s),禁用cookie等
moya请求的实质:target—>endpoint—>NSRequest
image.png
stubClosure
moya提供该闭包可以方便的提供测试。
如果设置了stubClosure,则moya会在成功或失败的回调中返回sampleData中的数据,例如当我传了stubClosure为MoyaProvider.delayedStub(1),那么当我调用登陆接口后,就会延迟1s返回sampleData中的数据,这在单元测试中相当有用
image.png
image.png
Moya提供了如下三种策略,用于模拟网络请求
image.png
manager
moya并不是网络请求库,它只提供网络请求的桥接,通过manager来设置网络请求库,默认使用的是alamofire。通过该参数可以方便的替换网络请求库
plugins
可以通过设置插件的方式为网络请求设置一些额外的功能,防止很多功能杂糅在一起,不方便维护。
image.png
实现pluginType可以实现在网络请求前转菊花,请求完成结束转菊花,或者写日志等功能
若有收获,就点个赞吧