Benutzerdefinierte Webservices können als REST-Webservices verfügbar gemacht werden und mit einer POST-Methode konfiguriert werden, die JSON-Eingaben zulässt.REST-Webdienste von Spectrum Technology Platform verfügen über eine POST-Methode, die JSON-Eingaben zulässt. Spezifizieren Sie Content-Type:application/json
und verwenden Sie das folgende Format für JSON POST-Anforderungen.
Flache Daten
Senden Sie unter Berücksichtigung des folgenden Formats im Text der Anforderung flache Daten mithilfe von POST an einen Webservice.
{ "InputStageName": { "InputDataType": [ { "FieldName1": "FieldValue1", "FieldName2": "FieldValue2" } ] } }
Wo:
- InputStageName
- Der Name des Input-Schrittes gemäß der Darstellung auf der Arbeitsfläche im Spectrum Enterprise Designer. Der Standardname des Schrittes lautet Input.
- InputDataType
- Der Name, der für die Entität auf Datensatzebene angegeben wird. Dieser Name wird im Input-Schritt des Datenflusses im Feld Datentypname auf der Registerkarte Eingabefelder angegeben. Der Standardname der Entität auf Datensatzebene lautet Row.
- FieldName1 und FieldName2
- Die Namen der Eingabefelder, die im Input-Schritt des Dienstes definiert sind.
- FieldValue1 und FieldValue2
- Eingabedaten, die Sie im entsprechenden Feld an den Webservice senden möchten.
Listendaten
Senden Sie unter Berücksichtigung des folgenden Formats Listendaten mithilfe von POST an einen Webservice.
{ "InputStageName": { "InputDataType": [ { "ListField1":[ {"SubfieldName1": "SubfieldValue1"}, {"SubfieldName2": "SubfieldValue2"} ] } ] } }
Wo:
- InputStageName
- Der Name des Input-Schrittes gemäß der Darstellung auf der Arbeitsfläche im Spectrum Enterprise Designer. Der Standardname des Schrittes lautet Input.
- ListField1
- Der Name des hierarchischen Feldes, das im Input-Schritt des Dienstes definiert ist.
- SubfieldName1 und SubfieldName2
- Die Namen der untergeordneten Felder, aus denen sich das Listenfeld zusammensetzt.
- SubfieldValue1 und SubfieldValue2
- Eingabedaten, die Sie an den Webservice senden möchten.
Benutzerfelder
Sie können zusätzliche Felder über den Webservice übergeben, auch wenn der Webservice diese nicht verwendet. Diese Felder werden unverändert im Bereich user_fields
der Antwort zurückgegeben. Die in der Anforderung angegebenen Benutzerfelder müssen nicht im Input-Schritt des Dienstdatenflusses definiert werden.
{ "InputStageName": { "InputDataType": [ { "user_fields": [ { "name": "FieldName1", "value": "FieldValue1" }, { "name": "FieldName2", "value": "FieldValue2" }] } ] } }
Wo:
- InputStageName
- Der Name des Input-Schrittes gemäß der Darstellung auf der Arbeitsfläche im Spectrum Enterprise Designer. Der Standardname des Schrittes lautet Input.
- FieldName1 und FieldName2
- Der Name des Durchlauffeldes.
- FieldValue1 und FieldValue2
- Die Daten, die im Durchlauffeld enthalten sein sollen.
Optionen
Sie können Optionen in der Anforderung festlegen, welche die im Dienstdatenfluss angegebenen Standardoptionen überschreiben. Für benutzerdefinierte Webservices können Sie nur dann Optionen in der Anforderung festlegen, wenn die Annahme von Optionen im Datenfluss konfiguriert wurde. Öffnen Sie einen Dienst im Spectrum Enterprise Designer, und wählen Sie
aus, um den Dienst für die Annahme von Optionen in der Anforderung zu konfigurieren.Geben Sie anhand des folgenden Formats Verarbeitungsoptionen in einer Anforderung an:
"options" : { "OptionName1" : "Value1" },
Wo:
- OptionName1
- Der Name der Option. Eine Liste der gültigen Optionen für den Dienst finden Sie in der WADL des Dienstes. Öffnen Sie den Dienst alternativ im Spectrum Enterprise Designer, und wählen Sie aus.
- OptionValue1
- Ein gültiger Wert für die Option. Öffnen Sie den Dienst im Spectrum Enterprise Designer, und wählen Sie aus, um eine Liste der gültigen Werte zu erhalten.
Beispiel: JSON-Anforderung mithilfe von POST
Im folgenden Beispiel wird veranschaulicht, wie Sie Optionen, flache Felder, ein Listenfeld und benutzerdefinierte Felder in einer JSON-Anforderung an einen Webservice anhand von POST hinzufügen.
{ "options" : { "OutputCasing" : "U" }, "Input": { "Address": [ { "AddressLine1": "1825 Kramer Ln", "City": "Austin", "StateProvince": "TX", "Accounts": [ { "AccountNumber": "120993", "ExpirationDate": "10-3-2017" }, { "AccountNumber": "898732", "ExpirationDate": "8-13-2016" } ], "user_fields": [ { "name": "Note1", "value": "Prefers decaffeinated coffee" }, { "name": "Note2", "value": "Requests east facing window" }] } ] } }
- OutputCasing ist eine Option, die durch den Webservice zur Steuerung, ob die Ausgabe in Großbruchstaben oder Kleinbuchstaben zurückgegeben wird, verfügbar gemacht wurde. In diesem Beispiel ist sie auf U (= Großbuchstaben) eingestellt.
- Input ist die Beschriftung des Input-Schrittes im Datenfluss gemäß der Anzeige auf der Arbeitsfläche im Spectrum Enterprise Designer.
- Address ist der Name der Entität auf Datensatzebene gemäß den Angaben im Input-Schritt des Datenflusses im Feld Datentypname auf der Registerkarte Eingabefelder.
- AddressLine1, City und StateProvince sind flache Felder.
- Accounts ist ein hierarchisches („Listen“-)Feld, das die Namen der Unterfelder AccountNumber und ExpirationDate enthält. Dieses Beispiel umfasst zwei Konten.
- user_fields enthält benutzerdefinierte Felder, die übergeben und ohne Änderung durch den Webservice in der Ausgabe zurückgegeben werden.