Я просто проводил тестирование с эндпоинтом «получить публичный список пользователей» и мне потребовалась пагинация, чтобы получить оставшихся пользователей. Я использовал поле load_more_directory_items, чтобы получить путь к следующей странице, который был указан как /directory_items?order=days_visited&page=1&period=all.
Однако при использовании этого пути я не получил корректный ответ API с пользователями, а вместо этого получил HTML-код. Я сравнил его с исходным эндпоинтом, и оказалось, что после directory_items отсутствует .json. Добавление .json к пути для следующей страницы, похоже, решило проблему. Не является ли это ошибкой в API?
При использовании API всегда указывайте .json для любых запросов, так как хотя большинство эндпоинтов возвращают JSON по умолчанию, некоторые могут возвращать HTML. Похоже, что у этого маршрута нет значения по умолчанию, поэтому, когда .json не был передан, маршрут не был найден.
Вам действительно следует указывать .json, чтобы не получать эту страницу с ошибкой, но интересно, если мы определяем вызов API, не стоит ли нам возвращать настоящий HTTP-ответ 404 вместо 200 с нечитаемым HTML-телом ?
Правильно, в начальном вызове API я указываю .json в точке входа. Проблема, которую я заметил, заключается в том, что в ответе поле load_more_directory_items внутри meta не содержит .json.