Какой код состояния HTTP подходит для исключения отмены подписки? - PullRequest
0 голосов
/ 04 августа 2020

Какой HTTP status code является правильным для Subscription Canceled исключения?

Мне нужно генерировать исключение, когда пользователь пытается получить доступ к определенной странице.

Я проверил несколько статусов, например Payment Required, но это не удовлетворяет требованию. Есть предложения?

Ответы [ 2 ]

3 голосов
/ 04 августа 2020

Какой код статуса HTTP является правильным для исключения отмены подписки?

Коды статуса HTTP принадлежат передаче документов по сети домену.

Таким образом, специфика того, что происходит в вашем домене, не имеет особого значения - идея состоит в том, чтобы понять состояние ошибки с точки зрения передачи документов и работать оттуда.

In В этом случае наиболее подходящим вариантом является 403 Запрещено

Код состояния 403 (Запрещено) указывает, что сервер понял запрос, но отказывается его авторизовать. Сервер, который хочет опубликовать c почему запрос был запрещен, может описать эту причину в полезной нагрузке ответа (если есть).

Это может помочь представить, как этот пример будет развиваться в сайт. Для пользователя-человека вы должны вернуть кучу HTML, объясняя, что их подписка была отменена, возможно, со ссылками на ресурсы, которые позволят пользователю повторно подписаться, и т. Д.

Для браузер , у вас будут метаданные HTTP, включая код состояния, чтобы браузер понимал семантику общего назначения сообщения (например, если более ранние представления ресурса будут признаны недействительными в cache ).

это запрос API от внешнего интерфейса.

На самом деле это не обсуждается; мотивация для унифицированного интерфейса заключается в том, что мы можем поменять местами реализации на любом конце диалога и семантику самоописательных сообщений не изменять .

1 голос
/ 04 августа 2020

Я бы сказал, что правильный код ответа:

401 неавторизованный

Поскольку по определению пользователь отменил свою подписку и не может получить больше доступа к платному контенту, поэтому пользователь не авторизован для этого. Другими словами, пользователь аутентифицирован, но не авторизован для выполнения этого запроса.

...