Использование заголовка Retry-After в ответе для не 503 / 3xx - PullRequest
2 голосов
/ 06 мая 2019

У нас есть интересный случай для бэкэнда REST, который мы реализуем на работе, когда процесс инициализации одного из наших объектов является асинхронным (к сожалению, мы ничего не можем с этим поделать). Поскольку метод инициализации является асинхронным, это означает, что конечные точки REST, которые изменяют этот метод, могут потерпеть неудачу, если объект еще не был инициализирован.

Чтобы избежать опроса, когда объект готов на бэкэнде, я пытаюсь использовать код состояния 409 + заголовок Retry-After. Идея состоит в том, что если клиент попытается изменить сущность при асинхронной инициализации, мы вернем 409 + Retry-After со значением, скажем, 5 секунд, с просьбой повторить тот же запрос через 5 секунд (повторяя процесс, пока объект не будет инициализирован).

Мой вопрос: допустимо ли это для заголовка Retry-After, спецификация RFC не совсем понятна, можно ли отправлять заголовок Retry-After только в 503 / 3xx, см. https://tools.ietf.org/html/rfc7231#section-7.1.3 для более подробной информации.

Конечно, мы могли бы просто использовать код состояния 503, однако это немного обманчиво, поскольку не значит, что наш сервис недоступен (скорее это то, что объект все еще инициализируется, поэтому мы хотим использовать 409 код состояния)

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