Potencial bug na API - endpoint "Obter uma lista pública de usuários"

Estava apenas fazendo alguns testes com o endpoint “get public list of users” e precisei usar paginação para obter os usuários restantes. Usei o campo load_more_directory_items para obter o caminho da próxima página, que foi listado como /directory_items?order=days_visited&page=1&period=all

No entanto, ao usar esse caminho, não obtive uma resposta correta da API com os usuários, e sim apenas algum HTML. Comparei com o endpoint original e parece que falta o .json após directory_items. Adicionar o .json ao caminho da próxima página pareceu funcionar. Isso seria um bug na API?

1 curtida

É provável que você tenha recebido a página HTML 404 not found.

Ao usar a API, sempre utilize .json em qualquer solicitação à API, pois, embora a maioria dos endpoints retorne JSON por padrão, alguns retornam HTML. Parece que esta rota não tem um padrão definido, então, quando .json não foi passado, a rota não pôde ser encontrada.

Você realmente deveria especificar .json para não receber essa página de erro, mas me pergunto: se detectarmos uma chamada à API, devemos retornar uma resposta HTTP 404 real em vez de 200 com um corpo HTML ilegível? :thinking:?

5 curtidas

Certo, com o endpoint na chamada inicial da API, estou especificando .json. O problema que observei foi que, na resposta, o load_more_directory_items sob meta não especificou .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"
    }

O valor é: /directory_items?order=days_visited&page=2&period=all

Quando deveria ser: /directory_items.json?order=days_visited&page=2&period=all

Como não inclui .json, tenho que atualizar manualmente essa string toda vez que preciso paginar.

1 curtida

Ah, agora entendi o que você quer dizer. Deve ser uma correção rápida. Vou trabalhar nisso hoje.

2 curtidas

Empurrei uma correção para isso:

Ela deve estar disponível na sua instância se você executar git pull e reconstruir. Obrigado por trazer isso à tona :slight_smile:

3 curtidas