Мы разрабатываем RESTful API для возврата коллекций документов. Наша первоначальная реализация использует коды состояния HTTP, чтобы указать, что запрос не может быть выполнен. Похоже, это широко распространенная передовая практика (см., Например, здесь).
Недавно мы столкнулись с проблемой, когда пользователь извлекал 1000 документов. Не удалось получить один из документов, поэтому мы вернули код состояния HTTP 500.
Альтернативой может быть возврат кода состояния HTTP 200 с полезной нагрузкой, содержащей 999 документов, которые мы смогли получить, а затем сбор ошибок с указанием того, который не удался.
Является ли этот альтернативный подход нарушением принципов RESTful? Как действовать в этой ситуации? Есть ли какие-нибудь варианты помимо этих двух подходов?