【发布时间】:2019-02-06 06:26:40
【问题描述】:
所以,我使用 MVVM 架构和 Repository 模式来进行不同的 API 调用。 我有一个名为 X 的存储库,其中有不同的相关 API 调用。
在进行任何这些调用之前,我想进行验证。如果成功进行,则仅应发出网络请求。
fun getSomethingX(data: Data): Single<Data> {
return if (validation(data)) {
service.getSomethingX()
.onErrorResumeNext(...)
.map { ... ->
...
}
} else {
Single.just(null)
}
}
fun getSomethingY(data: Data): Single<Data> {
return if (validation(data)) {
service.getSomethingX()
.onErrorResumeNext(...)
.map { ... ->
...
}
} else {
Single.just(null)
}
}
如您所见,我可能有许多名为getSomething..() 的网络请求函数。我认为这是一个样板代码。
是否有其他处理验证的方法(不仅是令牌验证,还有一般的权限)?如果是这样,你能给我举个例子吗?
是否可以在 Repository 级别进行权限验证?
也许更好的方法是在
Interceptor中进行验证?但是,如果验证未通过,我看不到取消请求的干净方法。
【问题讨论】:
标签: android kotlin retrofit2 rx-java2