REST: корректный код ответа HTTP для POST, который проигнорирован

Разработчик Twilio здесь.

Ресурсы Twilio не поддерживают нумерацию страниц на основе номеров. Вместо этого страница данных будет включать свойства next_page_uri и previous_page_uri. Вы можете контролировать размер страницы с помощью параметра PageSize.

При использовании библиотек вы можете настроить их автоматическое разбиение на страницы. Например:

twilioClient.chat.services(TWILIO_CHAT_SERVICE_SID)
  .channels(req.params.id)
  .messages
  .list({
    limit: 400,
    pageSize: 100
  });

в конечном итоге вызовут API 4 раза, чтобы вернуть 400 сообщений.

Вы можете узнать больше о нумерации ресурсов Twilio в документации.

16
задан bignose 1 May 2009 в 06:29
поделиться

3 ответа

Я думаю, что это прекрасно подходит для возврата 200 хорошо в этом случае, данные были правильно обработаны, и сервер сделал то, к чему это имело. Поскольку сервер обработал правильно данные, он должен возвратить код состояния OK. То, что это проигнорировало его внутренне, или должно быть не важным.

То, что сервер сделал к данным, не должно быть сказано клиентам, им нужно сказать то, что произошло с запросом (обработанный хорошо, ошибка произошла, и т.п.).

И если, по некоторой странной причине (я не могу думать допустимый, btw), он представляет интерес для клиентов, у Вас есть ответ, чтобы сказать им так.

22
ответ дан 30 November 2019 в 21:29
поделиться

От клиентского представления состояние сервера является тем же, если содержание запроса было тем же на сервере или нет, правильно? Так как сервер впоследствии содержит точно содержание, которое было отправлено, почему сервер должен ответить каким-либо видом ошибочного состояния? С другой стороны, почему клиент должен обеспокоиться, если бы содержание запроса уже совпало с известный серверу? Это было успешно передано серверу, таким образом, объем работы сделан. Как клиент, как ожидают, будет реагировать, если был другой код ответа для этой ситуации?

Заключение: Ваша ситуация содержания запроса равенство существующему содержанию не является никаким особым случаем. Необходимо ответить тем же кодом состояния ответа. Это могло бы быть 200, 302 или 303.

1
ответ дан 30 November 2019 в 21:29
поделиться

Если клиенты могут знать тег объекта для содержания на сервере, прежде чем они ПОМЕСТЯТ, то с помощью заголовков Если-соответствия и 412 Предварительных условий Неудавшийся ответ существует для точно ситуации, которую Вы описываете.

3
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: