У меня есть REST API, который возвращает список продуктов на основе входных параметров. Тело запроса выглядит следующим образом:
{
"param1": "xxx",
"param2": "yyy",
"limit": 50
}
Ответ выглядит следующим образом:
{
"products": [
543535,
234324,
5354,
5354333
]
}
Как мне действовать в ситуации, когда я возвращаю меньше продуктов, чем указано пользователем? Вариант использования действителен, поэтому ошибки не должны возвращаться, но я хочу уведомить своих клиентов о том, что существует меньше используемых продуктов, чем указано.
Пока что я могу придумать два подхода:
Отправить код частичного содержимого HTTP 206. Я бы предпочел этот метод, так как он наименее навязчив и имеет смысл с точки зрения логики c бизнеса. Однако я не уверен, правильное ли это использование кода HTTP 206 или чистый дизайн REST API.
Добавьте тег в тело ответа, указывающий на очевидное, например:
{"message": "Меньше продуктов, чем запрошено.", "Products": [543535, 234324, 5354, 5354333]}
Мне лично такой подход не нравится поскольку выглядит как очевидное и загромождает тело ответа.
Есть ли какие-нибудь другие подходы, которые я мог бы использовать, чтобы вызвать какую-то «мягкую ошибку» для этого варианта использования?