Inhaltstyp für Anforderung und Antwort steuern

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Steuert, welche Inhaltstypen in geskripteten REST-API-Anforderungen und -Antworten zulässig sind.

    Standardmäßig unterstützen geskriptete REST APIs application/json, application/xmlund text/xml. Benutzerdefinierte Content-Typen (mit Untertypen json oder xml) werden ebenfalls unterstützt. So werden zum Beispiel, application/vnd.collection+json und application/vnd.adobe.xdp+xml als JSON bzw. XML behandelt.
    Wichtig:
    Wenn das Anforderungstextformat nicht ein json- oder xml-Untertyp ist, verwenden Sie nur das Feld für den Anfragetext dataStream, um auf den Anforderungstext zuzugreifen. Das Verwenden des Anfragetextes data, dataString, nextEntry() oder hasNext() mit einem Nicht-JSON- oder Nicht-XML-Format führt zu einer Fehlerantwort 500.

    Standardwerte festlegen

    Sie können Standardwerte für die API mithilfe der Felder Standard unterstützte Anforderungsformate und Standard unterstützte Antwortformate festlegen. Diese Felder definieren akzeptable Werte, die Benutzer in den Content-Type- bzw. in die Accept-Anforderungskopfzeilen übergeben können. Wenn ein anfordernder Benutzer einen Header vom Typ „Akzeptieren“ oder „Inhaltstyp“ angibt, der von der API oder Ressource nicht unterstützt wird, antwortet die Instanz mit dem HTTP-Fehlercode 406 oder 415.

    Sie können diese Werte für jede Ressource mithilfe der Felder Unterstützte Anforderungsformate und Unterstützte Antwortformate im Formular „Geskripteter REST-Service“ überschreiben.
    Hinweis:
    Das Feld Unterstützte Anforderungsformate wird nur für PUT-, POST- und PATCH-Ressourcen angezeigt.

    Platzhalterwerte werden verwendet

    Sie können Platzhalterwerte verwenden, wenn Sie gültige Content-Typen angeben.
    • Verwenden Sie das Platzhalterzeichen (%), um eine Platzhaltersuche mit einem Zeichen durchzuführen. Dieser Platzhalter sucht nach Wörtern, die ein beliebiges Zeichen anstelle des Prozentzeichens enthalten. Um beispielsweise nach Wörtern wie „Text“ oder „Test“ zu suchen, suchen Sie nach Te%t.
    • Verwenden Sie zum Ausführen einer Platzhaltersuche mit mehreren Zeichen das Sternchen (*). Dieser Platzhalter findet Wörter, die anstelle des Sternzeichens kein oder mehr Zeichen enthalten. Um beispielsweise Wörter wie „planned“ oder „placed“ zu finden, suchen Sie nach pl*d.

    Mithilfe des Inhaltstyps „x-www-form-urlencoded“.

    Wenn eine REST-API oder -Ressource den Inhaltstyp „application/x-www-form-urlencoded“ akzeptiert, können Sie die in der Anforderung bereitgestellten urlencoded-Werte als JSON-Zuordnung abrufen. Sie können diese urlencodierten Schlüssel-Wert-Paare dann als Abfrageparameter, im Anforderungstext oder in beiden Fällen angeben. Sie werden kombiniert und in den Anforderungsparametern gespeichert. Greifen Sie über das Objekt request.queryParams auf diese Parameter zu.

    Wenn zum Beispiel Ihre API so definiert ist, dass sie den Content Typ application/x-www-form-urlencoded akzeptiert, und Ihre API wie folgt implementiert ist,
    (function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
    
     response.setBody(request.queryParams);
    
    })(request, response);
    … dann ergibt die folgende Anfrage die entsprechende Antwort:
    POST to localhost:8080/api/now/some_api/some_resource?name3=value3&name4=value4
    Textkörper:
    name1=value1&name2=value2
    Antwort:
    { "result":
        { "name4": [ "value4" ], "name3": [ "value3" ], "name2": [ "value2" ],
          "name1": [ "value1" ]
        }
    }

    Binärtyp wird in einer Antwort gesendet

    Wenn Sie einen binären Typ in einer Antwort senden, müssen Sie den Antwort-Content-Typ festlegen, und den binären Datenstrom direkt mit einem Objekt RESTAPIResponseStream schreiben. Sie können auf dieses Objekt zugreifen, indem Sie auf dem Antwortobjekt getStreamWriter() aufrufen. Weitere Informationen finden Sie unter .