es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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
)

Tags:  , , ,

Answer

  1. Avatar for 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:

    data class Auth (
       val access<em>token: String,
       val token</em>type: String,
       val details: Details?
    )
    
    data class Details (
       val loc: List<string>,
       val msg: String,
       val type: String
    )
    

    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
    )
    “`

Comments are closed.