Je suis en train de construire un service web qui est utilisé, dans ce cas particulier, pour demander des informations sur un client.
Disons, pour les besoins de l'argumentation, que le résultat de la recherche sur le web est :
GET /patrons/619 HTTP/1.1
Si le client est trouvé, je renvoie le code 200 :
HTTP/1.1 200 OK
Si vous omettez, ou si vous donnez un numéro de compte qui n'est pas un numéro, je renvoie 400. Par exemple, les mauvaises demandes suivantes :
GET /patrons HTTP/1.1
GET /patrons/ HTTP/1.1
GET /patrons/qwerty HTTP/1.1
GET /patrons/kylie%20guenin HTTP/1.1
tous renvoient l'erreur 400 (Bad Request), par exemple :
HTTP/1.1 400 Invalid patron number
Je veux avoir un code d'état pour Patron non trouvé retourné comme code d'état HTTP. Par exemple :
GET /patrons/1322 HTTP/1.1
HTTP/1.1 404 Not Found
J'ai pensé à utiliser 404 (non trouvé) qui es une réponse valide (la ressource demandée n'a, vraiment, pas été trouvée). Mais j'ai peur que les personnes qui déboguent le système pensent que cela signifie qu'ils ont épelé /patrons/
mauvais.
Quelqu'un peut-il penser à un autre code de statut http que je pourrais utiliser ?
Mise à jour : je regarde
204 No Content
The server successfully processed the request, but is not returning any content.
Qu'en dites-vous ?
N'oubliez pas que tous les serveurs HTTP ne fournissent pas du contenu HTML. Si un serveur web IIS est sollicité pour une ressource appelée :
GET /MyStartPage.html HTTP/1.1
Ensuite, le serveur HTTP doit décider de la réponse à donner. Sur la plupart des serveurs web, une ressource nommée /MaPageDebut.html correspond à un fichier se trouvant sur le disque dur.
Alors que StackOverflow le fait :
GET /posts/1027301 HTTP/1.1
Et si cette ressource n'existe pas, le serveur web devrait (à juste titre) renvoyer 404.