Frage

Da dieser Dienst:

POST /hotel HTTP/1.1

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

HTTP/1.1 201 CREATED
Location: /hotel/123

Wenn wir die Anforderung auf dem Server verarbeitet werden wir die hotel XML in der Anfrage gegen eine DTD validieren.

Frage

ist, als REST beste Praxis sollte der Kunde auf die DTD in der Anfrage beziehen (wie man in der Regel nicht, wenn ein XML-Dokument auf einer DTD basierte Erstellung)? Oder ist dies nicht erforderlich? Die DTD wird in der API-Dokumentation beschrieben werden, so die Autoren des Client-Dienstes der DTD-Validierung Details bekannt sein werden.

War es hilfreich?

Lösung

Nun, könnte man sicherlich eine 400 Bad Request spucken zurück, wenn die Anforderung Körper eine DTD-Prüfung fehlschlägt, aber ich würde nicht die DTD-Referenz erfordert anwesend zu sein. Sie sollten es erlauben, weggelassen werden, und es verwenden, wenn es da ist, aber ich würde auch die Anforderung fehlschlagen, wenn sie die falsche DTD angeben. Die Fehlermeldung sollte natürlich zeigen, was die erwartete DTD ist.

Sie können Überspringen der strengen Übereinstimmungsprüfung zu prüfen, ob die DTD weggelassen wird, da es die Art der Sache ist, dass die Menschen wollen, wenn sie die Software sind die Einrichtung, aber aus Leistungsgründen könnte ab, nachdem sie haben wollen weiß alles funktioniert.

Andere Tipps

Mein Wissen hat REST nichts über den Inhalt des POST Körpers zu sagen.

Natürlich müssen Sie die XML auf dem ohnehin Server validieren, so dass das Beste, was Sie tun können, ist empfohlen, dass der Client die XML gegen die DTD validiert, bevor sie zu senden, auf Zeit und Bandbreite zu sparen. Allerdings haben Sie wirklich keine Möglichkeit, es zu erzwingen.

Ich denke, Ihre Verantwortung als Service Schreiber ist die Anfrage, ob es bezieht sich auf die DTD zu akzeptieren, aber das ist nur meine Meinung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top