Я использую Retrofit2 для доступа к API, и у меня возникают проблемы с гибким анализом ответов на объекты.
Ответы API имеют общий формат:
Request: /api/users
Response:
{
"success": true,
"message": "Get all users",
"users": [{
"id": 1
"name": "User Name"
}]
}
Request: /api/user/1/items
Response:
{
"success": true,
"message": "Get all items",
"items": [{
"id": 1
"name": "Item Name"
}]
}
Модели обычно форматируются следующим образом:
data class ApiResponse<T>(val success: Boolean,
val message: String,
val payload: T)
data class User(val id: String, val name: String)
data class Item(val id: String, val name: String)
Я пытался использовать okhttp3.Interceptor
для анализа ответа, но я просто не могу понять, как обрабатывать динамический ключ (пользователи, предметы и т. д.).Я знаю ключ, когда делаю запрос, но я не уверен, как передать его моему Intercepter для получения значения из JSON.