Я собираю спецификацию для службы REST, часть которой будет включать в себя возможность регулирования пользователей в рамках всей службы, а также для групп или отдельных ресурсов. Точно так же тайм-ауты для них будут настраиваться для каждого ресурса / группы / услуги.
Я просто просматриваю спецификацию HTTP 1.1 и пытаюсь решить, как я сообщу клиенту, что запрос не будет выполнен, потому что он достиг своего предела.
Первоначально я подумал, что клиентский код 403 - Forbidden
был один, но это, из спецификации:
Авторизация не поможет и запрос НЕ ДОЛЖЕН повторяться
беспокоило меня.
На самом деле кажется, что 503 - Service Unavailable
это лучше использовать - так как он позволяет передавать время повтора с помощью Retry-After
заголовка.
Вполне возможно, что в будущем я могу рассчитывать на «покупку» большего количества запросов через электронную коммерцию (в этом случае было бы неплохо, если бы клиентский код 402 - Payment Required
был завершен!) - но я полагаю, что это также можно сжать в ответ 503.
Как вы думаете, что я должен использовать? Или есть другой, который я не рассматривал?
источник
В некоторой степени вы можете делать с кодами все, что вам нравится, но я согласен, что вы можете использовать
503
или, если хотите402
, без возможности жаловаться, что вы что-то ломаете.Изменить: пурист может сказать, что вы должны начать с 503, а затем переключаться, как только можно сделать платежи.
Отличное дополнение к этому в комментариях:
источник