Question

Étant donné ce service:

POST /hotel HTTP/1.1

<hotel>
  <a>aaa</a>
  <b>bbb</b>
  <c>ccc</c>
</hotel>

HTTP/1.1 201 CREATED
Location: /hotel/123

Lorsque nous traiterons la demande sur le serveur, nous validerons le code XML hôtel de la demande par rapport à une DTD.

La question est la suivante: en tant que meilleure pratique REST, le client doit-il faire référence à la DTD dans la demande (comme on le fait normalement lors de la création d’un document XML basé sur une DTD)? Ou n'est-ce pas requis? La DTD sera décrite dans les documents de l'API afin que les rédacteurs du service client soient informés des détails de la validation de la DTD.

Était-ce utile?

La solution

Eh bien, vous pouvez certainement recracher une 400 requêtes incorrectes si le corps de la requête échoue lors de la vérification de la DTD, mais je n’exigerais pas que la référence de la DTD soit présente. Vous devriez permettre de l'omettre et l'utiliser s'il y en a une, mais j'échouerais aussi à la demande s'ils spécifient la mauvaise DTD. Le message d'erreur doit bien sûr indiquer la DTD attendue.

Vous voudrez peut-être ignorer la vérification de conformité stricte si la DTD est omise, car il s'agit plutôt du type de chose que les utilisateurs souhaitent installer lors de la configuration du logiciel, mais pour des raisons de performances, ils peuvent vouloir être désactivés après avoir terminé. sachez que tout fonctionne.

Autres conseils

À ma connaissance, REST n’a rien à dire sur le contenu du corps du message.

Évidemment, vous devez quand même valider le code XML sur le serveur. Par conséquent, le mieux que vous puissiez faire est de recommander au client de valider le code XML par rapport à la DTD avant de l’envoyer, afin de gagner du temps et de la bande passante. Cependant, vous n’avez vraiment aucun moyen de l’appliquer.

Je pense que votre responsabilité en tant qu’écrivain de service est d’accepter la demande, qu’elle fasse ou non référence à la DTD, mais ce n’est que mon opinion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top