Posible error de API - endpoint "Obtener una lista pública de usuarios"

Estaba haciendo algunas pruebas con el endpoint “get public list of users” y necesitaba paginar para obtener el resto de los usuarios. Utilicé el campo load_more_directory_items para obtener la ruta de la siguiente página, que se mostraba como /directory_items?order=days_visited&page=1&period=all.

Sin embargo, al usar esta ruta, no recibí una respuesta API correcta con los usuarios, sino que obtuve solo algo de HTML. Lo comparé con el endpoint original y parece que le falta el .json después de directory_items. Agregar el .json a la ruta de la siguiente página pareció funcionar. ¿Sería esto un error en la API?

1 me gusta

Es probable que hayas recibido la página HTML 404 not found.

Al usar la API, siempre utiliza .json en las solicitudes, ya que, aunque la mayoría de los endpoints devuelven JSON por defecto, algunos devuelven HTML. Parece que esta ruta no tiene un valor predeterminado, por lo que, al no pasarle .json, la ruta no pudo ser encontrada.

Realmente deberías especificar .json para evitar este mensaje de error, pero me pregunto, si detectamos una llamada a la API, ¿deberíamos devolver una respuesta HTTP 404 real en lugar de un 200 con un cuerpo HTML ilegible :thinking:?

5 Me gusta

Bien, en la llamada inicial a la API estoy especificando .json en el endpoint. El problema que noté es que en la respuesta, el campo load_more_directory_items dentro de meta no incluye .json.

"meta": {
        "last_updated_at": "2020-08-11T11:40:43.000Z",
        "total_rows_directory_items": 1132,
        "load_more_directory_items": "/directory_items?order=days_visited&page=2&period=all"
    }

El valor es: /directory_items?order=days_visited&page=2&period=all

Cuando debería ser: /directory_items.json?order=days_visited&page=2&period=all

Como no incluye .json, tengo que actualizar manualmente esa cadena cada vez que necesito paginar.

1 me gusta

Ah, ahora entiendo lo que quieres decir. Eso debería ser una solución rápida. Me pondré a ello hoy.

2 Me gusta

He implementado una corrección para esto:

Debería estar disponible en tu instancia si ejecutas git pull y vuelves a compilar. Gracias por comentarlo :slight_smile:.

3 Me gusta