У меня есть класс обслуживания API с методом, который возвращает Call, предоставленный Retrofit.Недавно Rx2Java представил Single, поэтому я хочу изменить Call на Single, но я не хочу менять логику.Например:
class interface testAPI {
@GET
Call<Object> get()
}
А теперь я хотел бы изменить, как показано ниже
@GET
Single<Object> get()
Есть ли способ конвертировать Single в Call Likes:
Single.fromCall
или
Call.fromSingle
Обновление
@ Мойнхан: Спасибо за ответ!
Я хотел бы описать свою проблемув деталях.
Предыдущая версия прекрасно работает с Rest API и Retrofit
@GET
Call<Response> get()
Теперь мы планируем использовать GraphQL + Apollo клиент Android.Клиент Apollo совместим с Rxjava.API будет выглядеть следующим образом:
class apolloApi {
fun get(): Single<Response> {
// Run query code with Apollo Query and Rx2Java
}
}
Если мы так поступим, нам придется изменить всю предыдущую логику.Это требует наших усилий.(Определенно, мы должны сделать это в будущем!)
Но теперь, если мы сможем конвертировать Single в Call, все будет хорошо!Например:
class apolloApi {
private fun get(): Single<Response> {
// Run query code with Apollo Query and Rx2Java
}
fun convertCall(): Call<Response> {
return get().toCall() // Something like that
}
}