Il s'agit d'une question conceptuelle.
J'ai une application client (mobile) qui doit prendre en charge une action de connexion à un service web RESTful. Comme le service web est RESTful, cela revient à ce que le client accepte un nom d'utilisateur/mot de passe de la part de l'utilisateur, vérifie ce nom d'utilisateur/mot de passe avec le service, puis se rappelle simplement d'envoyer ce nom d'utilisateur/mot de passe avec toutes les demandes suivantes.
Toutes les autres réponses de ce service web sont fournies au format JSON.
La question est la suivante : lorsque j'interroge le service Web simplement pour savoir si un nom d'utilisateur et un mot de passe donnés sont valides, le service Web doit-il toujours répondre avec des données JSON m'indiquant si la requête est réussie ou non, ou doit-il renvoyer HTTP 200 si les informations d'identification sont bonnes et HTTP 401 si elles sont mauvaises ?
La raison de ma question est que certains autres services RESTful utilisent l'adresse 401 en cas d'informations d'identification erronées, même lorsque vous demandez simplement si les informations d'identification sont valides. Cependant, selon ma compréhension des réponses 401, elles représentent une ressource à laquelle vous n'êtes pas censé avoir accès sans informations d'identification valides. Mais la ressource de connexion DEVRAIT être accessible à tous, car son objectif est de vous indiquer si vos informations d'identification sont valides.
En d'autres termes, il me semble qu'une demande comme :
myservice.com/this/is/a/user/action
doit retourner 401 si de mauvaises informations d'identification sont fournies. Mais une requête comme :
myservice.com/are/these/credentials/valid
ne devrait jamais renvoyer 401 car cette URL particulière (demande) est autorisée avec ou sans informations d'identification valides.
J'aimerais entendre des avis justifiés dans un sens ou dans l'autre sur cette question. Quelle est la manière standard de traiter cette question, et cette manière standard est-elle logiquement appropriée ?