Получение информации с сайта. Retrofit, корутины

Заранее извиняюсь за свою невежественность, но пошла уже вторая неделя, а я всё решаю задачку с получением списка городов с сайта через GET-запрос.
Итак, мои шаги: веб-разработчик скинула мне ссылку-метод для получения списка, с помощью Postman сделал data класс ответа:

class WebResponse {

    data class RegionsData(
        val `1`: String,
        val `10`: String,
        val `100`: String,
        val `1000`: String,
        val `1001`: String,
        val `1002`: String,
        val `1003`: String,
        val `1004`: String,
        val `1005`: String,
        val `1006`: String,
        val `1007`: String,
        val `1008`: String,
        val `1009`: String,
        val `101`: String,
        val `1010`: String,
        val `1011`: String,
        val `1012`: String,
        val `1013`: String,
        и далее...)
}

Вот с этим data классом отдельная беда - с ним приложение не запускается, а висит до ошибки StackOverFlowError. Да, список большой, но мне кажется что бывают проекты и с более тяжёлыми дата-классами. Так с этим и не разобрался.

Создал Retrofit адаптер:

object BaseApiManager {

    val retrofitClient: RegionsAPI by lazy {
        Retrofit.Builder()
            .baseUrl("https://sdai-othodi.ru/")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
            .create(RegionsAPI::class.java)
    }

}

Интерфейс:

interface RegionsAPI {

    @GET("main/getcities_arr.php?id=2/")

    suspend fun getRegions():WebResponse
}

И вроде можно начинать переходить к созданию метода для вызова списка, который я буду вызывать в Спиннере, но на этом я завис и не смог найти правильного решения:

fun gettingRegios() {
    viewModelScope.async {
        WebResponse() =
            BaseApiManager.retrofitClient.getRegions()
    }
}

Располагал метод внутри класса, который отвечает за соответствующий фрагмент. Я хочу лишь одного - подтягивать информацию с сайта и подставлять значения в своём Android проекте. Заранее благодарю и обнимаю!


Ответы (0 шт):