Bug potentiel de l'API - point de terminaison « Obtenir une liste publique d'utilisateurs »

Je faisais simplement des tests avec le point de terminaison « obtenir la liste publique des utilisateurs » et j’avais besoin de paginer pour récupérer les utilisateurs restants. J’ai utilisé le champ load_more_directory_items pour obtenir le chemin de la page suivante, qui était indiqué comme /directory_items?order=days_visited&page=1&period=all.

Cependant, en utilisant ce chemin, je n’ai pas obtenu de réponse API correcte avec les utilisateurs, mais uniquement du HTML. En le comparant au point de terminaison d’origine, il semble qu’il manque l’extension .json après directory_items. L’ajout de .json au chemin de la page suivante a semblé fonctionner. S’agit-il d’un bug de l’API ?

1 « J'aime »

Il est probable que vous ayez reçu la page HTML 404 not found.

Lors de l’utilisation de l’API, utilisez toujours .json pour toutes les requêtes API, car bien que la plupart des points de terminaison renvoient du JSON par défaut, certains renvoient du HTML. Il semble que cette route n’ait pas de valeur par défaut ; ainsi, lorsque .json n’a pas été transmis, la route n’a pas pu être trouvée.

Vous devriez vraiment spécifier .json pour éviter cette page d’erreur, mais je me demande : si nous détectons un appel API, ne devrions-nous pas renvoyer une véritable réponse HTTP 404 au lieu d’un 200 avec un corps HTML illisible :thinking: ?

5 « J'aime »

Bon, avec le point de terminaison dans l’appel API initial, je spécifie .json. Le problème que j’ai remarqué est que dans la réponse, load_more_directory_items sous meta ne spécifie pas .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"
    }

La valeur est : /directory_items?order=days_visited&page=2&period=all

Alors qu’elle devrait être : /directory_items.json?order=days_visited&page=2&period=all

Comme cela n’inclut pas .json, je dois mettre à jour manuellement cette chaîne à chaque fois que je dois paginer.

1 « J'aime »

Ah, je vois ce que vous voulez dire maintenant. Ce devrait être une correction rapide. Je m’en occupe aujourd’hui.

2 « J'aime »

J’ai appliqué une correction pour cela :

Cela devrait être disponible sur votre instance si vous exécutez git pull et que vous reconstruisez. Merci d’avoir soulevé ce point :slight_smile:.

3 « J'aime »