Potenziale bug API - endpoint "Ottieni un elenco pubblico di utenti"

Stavo appena facendo alcuni test con l’endpoint “ottenere l’elenco pubblico degli utenti” e ho dovuto gestire la paginazione per recuperare gli utenti rimanenti. Ho utilizzato il campo load_more_directory_items per ottenere il percorso della pagina successiva, che era indicato come /directory_items?order=days_visited&page=1&period=all

Tuttavia, utilizzando questo percorso, non ho ricevuto una risposta API corretta con gli utenti, ma solo del codice HTML. Confrontandolo con l’endpoint originale, sembra che manchi l’estensione .json dopo directory_items. Aggiungendo .json al percorso della pagina successiva, sembra che tutto funzioni correttamente. Potrebbe essere un bug dell’API?

1 Mi Piace

È probabile che tu abbia ricevuto la pagina HTML 404 not found.

Quando utilizzi l’API, usa sempre .json per tutte le richieste API, perché sebbene la maggior parte degli endpoint restituisca JSON di default, alcuni restituiscono HTML. Sembra che questa rotta non abbia un default, quindi quando non è stato passato .json, la rotta non è stata trovata.

Dovresti davvero specificare .json per evitare questa pagina di errore, ma mi chiedo: se rileviamo una chiamata API, dovremmo restituire una vera risposta HTTP 404 invece di un 200 con un corpo HTML illeggibile? :thinking:?

5 Mi Piace

Giusto, con l’endpoint nella chiamata API iniziale sto specificando .json. Il problema che ho notato è che nella risposta, load_more_directory_items sotto meta non specifica .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"
    }

Il valore è: /directory_items?order=days_visited&page=2&period=all

Mentre dovrebbe essere: /directory_items.json?order=days_visited&page=2&period=all

Poiché non include .json, devo aggiornare manualmente quella stringa ogni volta che devo fare la paginazione.

1 Mi Piace

Ah, ora capisco cosa intendi. Dovrebbe essere una correzione rapida. Ci lavorerò oggi.

2 Mi Piace

Ho applicato una correzione per questo:

Dovrebbe essere disponibile nella tua istanza se esegui git pull e ricompili. Grazie per averlo segnalato :slight_smile:.

3 Mi Piace