Це концептуальне питання.
У мене є клієнтський (мобільний) додаток, який повинен підтримувати вхід у систему щодо веб-сервісу RESTful. Оскільки веб-сервіс RESTful, це означає, що клієнт приймає ім'я користувача / пароль від користувача, підтверджуючи це ім’я користувача / пароль за допомогою сервісу, а потім просто пам'ятає надіслати це ім'я користувача / пароль з усіма наступними запитами.
Усі інші відповіді в цій веб-службі надаються у форматі JSON.
Питання полягає в тому, що коли я запитую веб-сервіс просто, щоб дізнатись, чи вказане ім'я користувача / пароль є дійсними, чи веб-служба завжди відповідає на дані JSON, повідомляючи мені про її успішність чи невдалість, чи повинен повернути HTTP 200 на хороших облікових даних та HTTP 401 на помилкових облікових даних.
Причина, яку я запитую, полягає в тому, що деякі інші сервіси RESTful використовують 401 для поганих облікових даних навіть тоді, коли ви просто запитуєте, чи справді дані облікових даних дійсні. Однак, як я розумію, відповіді 401 полягають у тому, що вони являють собою ресурс, до якого ви не повинні мати доступ без дійсних даних. Але ресурс для входу повинен бути доступним для всіх, оскільки вся мета ресурсу для входу полягає в тому, щоб повідомити вам, чи ваші облікові дані дійсні.
По-іншому, мені здається, що запит на зразок:
myservice.com/this/is/a/user/action
повинен повернути 401, якщо надано невірні дані. Але запит на зразок:
myservice.com/are/these/credentials/valid
ніколи не повинен повертати 401, оскільки ця конкретна URL-адреса (запит) дозволена з дійсними обліковими даними або без них.
Я хотів би почути так чи інакше обґрунтовані думки з цього приводу. Який стандартний спосіб поводження з цим і чи є стандартний спосіб поводження з цим логічно доцільним?