На JSON - REST API, как выполнять предупреждения о некритических ошибках или повторных попытках - PullRequest
0 голосов
/ 14 октября 2019

[Я упоминаю источники, на которые я смотрел ниже]

Я разрабатываю API и снова и снова обнаруживаю, что предупреждения будут полезны, это были 3 наиболееобщие случаи использования:

  1. Чтобы сообщить, что при выполнении POST возникла некритическая проблема: (Например, данные, не соответствующие какой-либо проверке, были проигнорированы, и ресурс был создан в любом случае)
  2. Чтобы сообщить, что возник побочный эффект: (Например, связанный ресурс, который был действителен вчера, теперь истек и был удален - однако основной ресурс все еще действителен)
  3. Чтобы сообщить, что действие уже быловыполнено: (Например, при отправке данных платежа на элемент, который уже оплачен)

Во всех 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 имеет связанное с ним поведение (кеширует) и находится на грани изменения (устарело)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...