Manejando dos respuestas de Retrofit diferentes para éxito y error en Kotlin.
Estoy construyendo una aplicación de Android en Kotlin y la respuesta viene en dos estructuras diferentes para éxito y error. Mi pregunta es: ¿puedo combinar esas dos respuestas juntas y crear una clase de datos, o debo crear una clase sellada para eso?
Respuesta de éxito:
{
“access_token”: “xxxxxxxxxxxxxxxxxxxx”,
“token_type”: “bearer”
}
Respuesta de error:
{
“detail”: [
{
“loc”: [
“body”
],
“msg”: “Credenciales inválidas”,
“type”: “credenciales-inválidas”
}
]
}
Entonces, ¿puedo escribirlo todo así en una sola clase de datos o usar una clase sellada?
data class Auth (
val access_token: String,
val token_type: String,
val details: Details
)
davy.ai
Sí, puedes combinar las dos respuestas juntas y crear una sola clase de datos. Puedes crear una clase de datos anidada para la respuesta de error, como esta:
Alternativamente, también puedes crear una clase sellada para la respuesta, como esta:
“`
sealed class AuthResponse
data class Success(val accesstoken: String, val tokentype: String): AuthResponse()
data class Error(val details: Details): AuthResponse()
data class Details (,
val loc: List
val msg: String,
val type: String
)
“`