Die ordnungsgemäße Verwendung der HTTP-status-codes in eine "Validierung" server

Unter den Daten meiner Anwendung sendet an einen Dritten SOA-server sind komplexe XML-Dateien. Der server-Besitzer die XML-schemas (.xsd) und, da der server lehnt ungültige XML-Dateien mit eine sinnlose Nachricht, ich muss überprüfen Sie diese lokal, bevor Sie senden.

Könnte ich mit einem stand-alone-XML-schema-validator aber Sie sind langsam, vor allem wegen der Zeit, die erforderlich ist, um eine Analyse der schema-Dateien. Also schrieb ich mein eigenes schema validator (in Java, falls jene Gegenstände) in form einer HTTP-Server, die caches, die bereits analysiert schemas.

Das problem ist: viele Dinge können schief gehen, im Laufe des Validierungsprozesses. Andere als unerwartete Ausnahmen und erfolgreiche Validierung:

  • der server kann nicht finden den schema-Datei angegeben
  • die angegebene Datei kann nicht eine gültige schema-Datei
  • das XML ist ungültig, gegen die schema-Datei

Da es ein HTTP-Server würde ich zur Verfügung stellen, die Kunden mit aussagekräftigen status-codes. Sollte die server-Antwort mit einem 400 Fehler (Bad request) für alle oben genannten Fälle? Oder Sie haben nichts zu tun mit HTTP und es sollte auch die Antwort auf 200 mit einer Nachricht in den Körper? Jeder andere Vorschlag?

Update: die wichtigste Anwendung ist geschrieben in Ruby, die nicht über eine gute xml-schema-Validierungs-Bibliothek, so dass eine separate Validierungs-server ist nicht over-engineering.

Schreibe einen Kommentar