Forma de mapear estructura anidada de modelos por HTTP



  • Buenas , estoy intentando mostrar un listado de paginado en base a la respuesta de un endpoint
    Ejemplo :

    {
        "page": 2,
        "per_page": 6,
        "total": 12,
        "total_pages": 2,
        "data": [
            {
                "id": 7,
                "email": "michael.lawson@reqres.in",
                "first_name": "Michael",
                "last_name": "Lawson",
                "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/follettkyle/128.jpg"
            },
            {
                "id": 8,
                "email": "lindsay.ferguson@reqres.in",
                "first_name": "Lindsay",
                "last_name": "Ferguson",
                "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/araa3185/128.jpg"
            }
       ]
    }
    

    Con el modelo PaginaUsuario que tiene anindado el modelo Usuario

    Model Usuario{
        Integer id 
        String email
        String nombre
        String apellido 
        String avatar
    }
    
    Model PaginaUsuario{
        Integer paginaActual 
        Integer paginasTotal
        Integer usuariosPorPagina
        Integer usuarioTotal
        Array<Usuario> usuarios
    }
    

    Esta es la configuración para el mapeo de la respuesta

    1_1574131478284_Selección_002.png
    0_1574131478280_Selección_001.png

    Al hacer esto no pareciera estar haciendo el mapeo de los usuarios en el atributo usuarios como entidades del modelo Usuario .
    ¿ Esta mal cargado el mapeo del response en data ?
    Gracias



  • @avillucas said in Forma de mapear estructura anidada de modelos por HTTP:

    ¿ Esta mal cargado el mapeo del response en data ?

    Buenas @avillucas , para poder mapear los atributos del nodo "data" debes crear un modelo con los mismos nombres de atributos. Por lo que, en el caso del Model Usuario que creaste deberías modificar los nombres de los atributos por el mismo nombre de los atributos con que responde el endpoint. Este mapping es automático pero debe tiene la condición de que debemos nombrar a los atributos de igual manera que la respuesta del endpoint.

    Saludos.