Я разрабатываю API, который также будет иметь компонент аутентификации/авторизации.
Любой, независимо от статуса проверки подлинности, сможет писать (POST), но в зависимости от того, не аутентифицирован ли он, аутентифицирован как обычный пользователь или аутентифицирован как администратор и какой ресурс вы пытаетесь получить доступ, я собираюсь возвращать разные ответы для GET, DELETE и PUT.
Я пытаюсь выяснить наиболее подходящий код ответа для пользователя, который не прошел проверку подлинности и/или авторизован.
Имейте в виду http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
Неавторизованный → 401
Запрещено → 403
Не допускается метод → 405
Используйте конкретные примеры:
- Джон Доу не проверен, на DELETE он должен получить 401 или 405?
- Эми проверена, но не авторизована, на DELETE она должна получить 403 или 405?
(Имейте в виду, что даже если Джон и Эми запрещены или несанкционированы, это не значит, что они не могут получить доступ к одному и тому же ресурсу с другим HTTP VERB.)
Спасибо.