Я збираю специфікацію для REST-сервісу, частина якого буде включати можливість перешкоджати користувачам сервісу на всій основі та на групи або на окремі ресурси. У рівній мірі, тайм-аути для них можна налаштувати на ресурс / групу / послугу.
Я просто переглядаю специфікацію HTTP 1.1 і намагаюся вирішити, як мені повідомити клієнту, що запит не буде виконаний, оскільки вони досягли своєї межі.
Спочатку я зрозумів, що клієнтський код 403 - Forbidden
був одним, але це, з специфікації:
Авторизація не допоможе, і запит НЕ повинен повторюватися
турбував мене.
Насправді, здається, що 503 - Service Unavailable
це кращий варіант використання, оскільки він дозволяє передавати час повторного часу за допомогою Retry-After
заголовка.
Цілком можливо, що в майбутньому я можу погодитися підтримати «купівлю» більше запитів за допомогою електронної комерції (у цьому випадку було б добре, якби клієнтський код 402 - Payment Required
було доопрацьовано!) - але я вважаю, що це також можна було б втиснути у відповідь 503.
Що, на вашу думку, я повинен використовувати? Або є інша, яку я не розглядав?