Programmcode für REST Requests
Der C#-Programmcode, der die Aufträge fürRaptorXML Server enthält, ist in der C#-Datei namens Program.cs definiert. Im Code werden die im C# Wrapper für die REST API definierten Klassen verwendet, um die an RaptorXML Server gesendeten Requests zu erstellen.
Der Programmcode enthält drei Anwendungsbeispiele für die Verwendung der REST API von RaptorXML Server:
•Validierung einer referenzierten XML-Datei mit Hilfe des valany-Befehls von RaptorXML Server. Die Schema-Datei wird von der XML-Datei aus referenziert und muss nicht als Argument des Befehls angegeben werden.
•Zwei XML-Dateien werden mit Hilfe des valany-Befehls von RaptorXML Server validiert. Beide XML-Dateien sowie die für die Validierung verwendete Schema-Datei werden mit dem Befehl als String-Anhänge hochgeladen. Die Ergebnisse der Validierung werden nach Abschluss beider Validierungen gemeinsam zurückgegeben.
•Eine XML-Datei wird hochgeladen und mit Hilfe einer XSLT-Datei transformiert. Beide Dateien werden über REST hochgeladen. Dazu wird der Befehl xslt von RaptorXML Server verwendet. Das mit der Transformation erzeugte Dokument wird durch das Programm aufgerufen.
Weiter unten finden Sie eine nähere Erklärung zum Code dieser drei Anwendungsbeispiele.
Fehlerbehandlung
Im Fall eines Fehlers wird die Fehlermeldung mit Hilfe einer Fehlerbehandlungsfunktion (namens HandleError) im unteren Teil des Codes aus der Server Response abgerufen.
Fall 1: Validierung einer referenzierten XML-Datei (einfacher Befehl)
Im Programmcode für dieses Anwendungsbeispiel werden Klassen und Funktion aus dem REST API Wrapper verwendet, um die HTTP-Kommunikation mit RaptorXML Server einzurichten und auszuführen. Die Logik des Codes ist die folgende:
RaptorXMLRESTAPI.Command | Definiert den aufzurufenden RaptorXML Server-Befehl, nämlich valany, und die Datei, die als das Argument des valanyBefehls bereitgestellt werden soll. |
RaptorXMLRESTAPI.CommandResponse | Setzt die Antwort des Servers auf den Validierungs-Request in die Variable jsonResponse. Beachten Sie, dass Validierungsaufträge das Resultat "OK" oder "Fehlgeschlagen" haben. |
RaptorXMLRESTAPI.ResultDocument | Ruft das vom Server zurückgegebene Ergebnisdokument auf und zeigt das Validierungsergebnis an, falls keine Fehler aufgetreten sind. |
Fall 2: Validierung zweier hochgeladener XML-Dateien anhand einer hochgeladenen XSD-Datei (multipart-Befehl)
Im Programmcode für dieses Anwendungsbeispiel wird die Klasse MultiPartCommand aus dem REST API Wrapper verwendet, um die HTTP-Kommunikation mit RaptorXML Server einzurichten und auszuführen. Da Dateien im Body des POST Request hochgeladen werden sollen, muss der Inhaltstyp des Message Headers auf multipart/form-data gesetzt werden. Mit Hilfe der Klasse MultiPartCommand des Wrappers wird die REST HTTP-Kommunikation entsprechend konfiguriert. Der Code für dieses Anwendungsbeispiel ist folgendermaßen strukturiert:
RaptorXMLRESTAPI.MultiPartCommand | Definiert den aufzurufenden RaptorXML Server-Befehl, nämlich valany, und lädt die beiden XML-Dateien und die Schema-Datei anschließend mit Hilfe der Funktion AppendAttachment der Klasse hoch. Die Dateien werden als Strings bereitgestellt. Die Server Response gibt das Validierungsergebnis der beiden Dateien zurück und diese Antwort wird in der Variablen jsonResponse gespeichert. |
RaptorXMLRESTAPI.fetchCommandResult | Ruft das vom Server zurückgegebene Ergebnisdokument auf und zeigt die Validierungsergebnisse an, falls keine Fehler aufgetreten sind. |
RaptorXMLRESTAPI.cleanupResults | Diese Funktion des Wrappers löscht die Ergebnisdokumentdatei, die temporären Dateien und die mit dem Auftrag in Zusammenhang stehenden Fehler- und Ausgabedokumentdateien mit Hilfe der DELETE-Methode von HTTP. |
Fall 3: XSLT-Transformation hochgeladener XML- und XSLT-Dateien (multipart-Befehl)
Der Programmcode für dieses Beispiel ähnelt dem des Falls 2 weiter oben. Darin wird die Klasse MultiPartCommand verwendet, um eine XSLT-Transformation einzurichten und das Ergebnisdokument in einem Meldungsfeld anzuzeigen. Die XML- und XSLT-Datei für die Transformation werden mit dem Request hochgeladen. Der XSLT-Befehl von RaptorXML Server kann außerdem Optionen haben, daher wird in diesem Beispiel gezeigt, wie Sie Optionen über die REST-Schnittstelle hinzufügen können (in diesem Beispiel erfolgt dies mit Hilfe der RaptorXMLRESTAPI.AppendOption-Funktion. Im Folgenden finden Sie wichtige Anmerkungen zum Code.
RaptorXMLRESTAPI.MultiPartCommand | Definiert den aufzurufenden RaptorXML Server-Befehl XSLT und verwendet anschließend (i) die Funktion AppendAttachment der Klasse, um die XML- und XSLT-Datei hochzuladen und (ii) die Funktion AppendOption, um Optionen für die RaptorXML Server-Befehlszeile bereitzustellen. Die hochgeladenen Dateien werden als Strings bereitgestellt. Die Server Response gibt das Validierungsergebnis der beiden Dateien zurück und diese Antwort wird in der Variablen jsonResponse gespeichert. |
RaptorXMLRESTAPI.fetchCommandResult | Ruft das vom Server zurückgegebene Ergebnisdokument auf und zeigt die Validierungsergebnisse an, falls keine Fehler aufgetreten sind. |
RaptorXMLRESTAPI.cleanupResults | Diese Funktion des Wrappers löscht die Ergebnisdokumentdatei, die temporären Dateien und die mit dem Auftrag in Zusammenhang stehenden Fehler- und Ausgabedokumentdateien mit Hilfe der DELETE-Methode von HTTP. |