Si la demande n'a pas pu être analysée correctement (y compris l'entité/le corps de la demande), la réponse appropriée est la suivante 400 mauvaise demande [ 1 ].
RFC 4918 déclare que 422 Entité non traitable est applicable lorsque l'entité de la demande est syntaxiquement bien formée, mais sémantiquement erronée. Ainsi, si l'entité de la demande est confuse (comme un mauvais format de courriel), utilisez 400 ; mais si elle n'a tout simplement pas de sens (comme @example.com
) utiliser 422.
Si le problème est que, comme indiqué dans la question, le nom d'utilisateur et l'adresse électronique existent déjà, vous pouvez utiliser la méthode suivante 409 Conflit [ 2 ] avec une description du conflit, et une indication sur la façon de le résoudre (dans ce cas, "choisir un autre nom d'utilisateur/email"). Cependant, dans la spécification telle qu'elle est écrite, 403 Interdit [ 3 ] peut également être utilisé dans ce cas, malgré les arguments concernant l'autorisation HTTP.
412 Échec de la précondition [ 4 ] est utilisé lorsqu'un en-tête de requête de précondition (par exemple If-Match
) qui était fourni par le client a pour valeur false. En d'autres termes, le client a demandé quelque chose et a fourni des conditions préalables, en sachant pertinemment que ces conditions préalables pourraient échouer. 412 ne devrait jamais être imposée au client de façon impromptue et ne devrait pas être liée à l'entité de la demande. en soi .