Проблемы с модернизацией, рукояткой кинжала и шаблоном репозитория для получения данных APIAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблемы с модернизацией, рукояткой кинжала и шаблоном репозитория для получения данных API

Сообщение Anonymous »

Я строю крипто -приложение, используя котлин с модернизацией и рукоятиком кинжала. Я настроил следующую структуру для получения данных из API, но я сталкиваюсь с некоторыми проблемами зависимости. Кто -нибудь может мне помочь? < /P>
myapi < /p>

Код: Выделить всё

interface MyApi {
@GET("v1/coins")
suspend fun getCoins(): List

@GET("v1/coins/{coinId}")
suspend fun getCoinById(@Path("coinId") coinId: String): CoinDetailDto
}
Сетевой модуль

Код: Выделить всё

@Module
@InstallIn(SingletonComponent::class)
object NetworkModule {
@Provides
@Singleton
fun provideOkHttpClient(): OkHttpClient {
return OkHttpClient.Builder().build()
}

@Provides
@Singleton
fun provideMyApi(): MyApi {
return Retrofit.Builder()
.baseUrl(BASE_URL)
.client(provideOkHttpClient())
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(MyApi::class.java)
}
}
< /code>
RepositoryModule < /p>
@Module
@InstallIn(SingletonComponent::class)
object RepositoryModule {
@Provides
@Singleton
fun provideCryptoRepository(myApi: MyApi): CryptoRepository {
return CryptoRepositoryImpl(myApi)
}
}
< /code>
CryptorePository и CryptorePositoryImpl < /p>
interface CryptoRepository {
suspend fun getCoins(): List
suspend fun getCoinById(coinId: String): CoinDetailDto
}

class CryptoRepositoryImpl @Inject constructor(
private val myApi: MyApi
) : CryptoRepository {
override suspend fun getCoins(): List {
return myApi.getCoins()
}

override suspend fun getCoinById(coinId: String): CoinDetailDto {
return myApi.getCoinById(coinId)
}
}
Проблема: @Provides @jakarta.inject.Singleton com.example.cryptocompose.ui.domain.repository.CryptoRepository com.example.cryptocompose.ui.di.RepositoryModule.provideCryptoRepository(com.example.cryptocompose.ui.data.retrofit.MyApi)
Я ожидал, что CryptoRepositoryImpl будет внедрен везде, где требуется CryptoRepository (например, в ViewModels или других компонентах).
Приложение должно получать данные из API и возвращать список монеты или детали конкретной монеты без каких-либо ошибок выполнения, связанных с зависимостями.

Подробнее здесь: https://stackoverflow.com/questions/793 ... pi-data-fe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»