Как будут выглядеть запросы в твоем проекте

«Как будут выглядеть запросы в твоем проекте» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Обычно использую Retrofit + Kotlin Coroutines для сетевых запросов. Пример:

interface ApiService {
    @GET("posts/{id}")
    suspend fun getPost(@Path("id") postId: Int): Response<Post>

    @POST("posts")
    suspend fun createPost(@Body post: Post): Response<Post>
}

// Использование в ViewModel:
class PostViewModel : ViewModel() {
    private val api = RetrofitClient.apiService

    fun loadPost(id: Int) = viewModelScope.launch {
        try {
            val response = api.getPost(id)
            if (response.isSuccessful) {
                _post.value = response.body()
            }
        } catch (e: Exception) {
            _error.value = e.message
        }
    }
}

Ключевые моменты:

  1. Suspend функции для корутин
  2. Обработка ошибок в try-catch
  3. Использование Response для доступа к статус-коду
  4. ViewModelScope для управления жизненным циклом
  5. Разделение на интерфейс API и реализацию