[Я упоминаю источники, на которые я смотрел ниже]
Я разрабатываю API и снова и снова обнаруживаю, что предупреждения будут полезны, это были 3 наиболееобщие случаи использования:
- Чтобы сообщить, что при выполнении POST возникла некритическая проблема: (Например, данные, не соответствующие какой-либо проверке, были проигнорированы, и ресурс был создан в любом случае)
- Чтобы сообщить, что возник побочный эффект: (Например, связанный ресурс, который был действителен вчера, теперь истек и был удален - однако основной ресурс все еще действителен)
- Чтобы сообщить, что действие уже быловыполнено: (Например, при отправке данных платежа на элемент, который уже оплачен)
Во всех 3 случаях ответ на глагол является успешным, соответствующий ответ возвращает ресурс (в случае 1 ресурс был создан, в случае 2 ресурс все еще существует, в случае 3 ресурс теперь оплачен)
Во всех 3 случаях я чувствую, чтоЯ должен информировать Клиента, но я не мог найти стандартный способ сделать это.
Добавление ответа как части тела потребовало бы от меня изменения модели ресурса, чего я бы предпочел избегать
Стандартизированный ключ "_warnings", который не является частью модели как таковой, - это то, к чему я неравнодушен (но я не видел его реализации)
В идеале, я чувствую, что информация должна бытьчасть заголовков, но единственный подобный подход, который я нашел, был заголовками Warnings, которые устарели (см. ниже).
Вещи, на которые я смотрел:
Предыдущий (соответствующий) вопрос: https://softwareengineering.stackexchange.com/questions/315556/warnings-in-a-rest-api-as-not-critical-errors
Причина, по которой это не относится на 100%: Вопрос сосредоточен на соответствующем коде состояния и погодных условиях, которые он должен делатьпредупреждения вообще, в отличие от сосредоточения внимания на самих ресурсах и на том, куда их помещать
Стандартный заголовок предупреждения: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Warning
Причина, по которой это не имеет значения Header имеет связанное с ним поведение (кеширует) и находится на грани изменения (устарело)