Возможная ошибка API - эндпоинт "Получить публичный список пользователей"

Я просто проводил тестирование с эндпоинтом «получить публичный список пользователей» и мне потребовалась пагинация, чтобы получить оставшихся пользователей. Я использовал поле load_more_directory_items, чтобы получить путь к следующей странице, который был указан как /directory_items?order=days_visited&page=1&period=all.

Однако при использовании этого пути я не получил корректный ответ API с пользователями, а вместо этого получил HTML-код. Я сравнил его с исходным эндпоинтом, и оказалось, что после directory_items отсутствует .json. Добавление .json к пути для следующей страницы, похоже, решило проблему. Не является ли это ошибкой в API?

1 лайк

Скорее всего, вы получили HTML-страницу с ошибкой 404 Not Found.

При использовании API всегда указывайте .json для любых запросов, так как хотя большинство эндпоинтов возвращают JSON по умолчанию, некоторые могут возвращать HTML. Похоже, что у этого маршрута нет значения по умолчанию, поэтому, когда .json не был передан, маршрут не был найден.

Вам действительно следует указывать .json, чтобы не получать эту страницу с ошибкой, но интересно, если мы определяем вызов API, не стоит ли нам возвращать настоящий HTTP-ответ 404 вместо 200 с нечитаемым HTML-телом :thinking:?

5 лайков

Правильно, в начальном вызове API я указываю .json в точке входа. Проблема, которую я заметил, заключается в том, что в ответе поле load_more_directory_items внутри meta не содержит .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"
    }

Текущее значение: /directory_items?order=days_visited&page=2&period=all

А должно быть: /directory_items.json?order=days_visited&page=2&period=all

Поскольку .json отсутствует, мне приходится вручную изменять эту строку каждый раз, когда нужно перейти на следующую страницу.

1 лайк

А, теперь я понимаю, что вы имеете в виду. Это должно быть быстро исправить. Я займусь этим сегодня.

2 лайка

Я исправил эту проблему:

Исправление должно появиться в вашем экземпляре после выполнения команды git pull и пересборки. Спасибо, что подняли этот вопрос :slight_smile:.

3 лайка