Type de contenu de la demande et de la réponse de contrôle

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 2 minutes de lecture
  • Contrôle les types de contenu autorisés dans les demandes et réponses de l’API REST scriptées.

    Par défaut, les API REST basées sur un script prennent en charge application/json, application/xml et text/xml. Les types de contenu personnalisés définis par l’utilisateur (avec des sous-types json ou xml ) sont également pris en charge. Par exemple, application/vnd.collection+json et application/vnd.adobe.xdp+xml sont traitées respectivement comme JSON et XML.
    Important :
    Si le format du corps de la demande n’est pas d’un sous-type json ou xml , utilisez uniquement le champ dataStream du corps de la demande pour accéder au corps de la demande. L’utilisation des données du corps de la demande, dataString, nextEntry() ou hasNext() avec un format non-json ou non-xml entraîne une réponse d’erreur 500 .

    Paramètres par défaut

    Vous pouvez définir des valeurs par défaut pour l’API à l’aide des champs Formats de demande pris en charge par défaut et Formats de réponse pris en charge par défaut . Ces champs définissent les valeurs acceptables que les utilisateurs peuvent transmettre dans les en-têtes de demande Content-Type et Accept, respectivement. Si un utilisateur demandeur spécifie un en-tête Accepter ou Contenu-Type qui n’est pas pris en charge par l’API ou la ressource, l’instance répond avec un code d’erreur HTTP 406 ou 415.

    Vous pouvez remplacer ces valeurs pour chaque ressource à l’aide des formats de demande pris en charge et des formats de réponse pris en charge sur le formulaire Service REST scripté.
    Remarque :
    Le champ Formats de demande pris en charge s’affiche uniquement pour les ressources PUT, POST et PATCH.

    Utilisation de valeurs génériques

    Vous pouvez utiliser des valeurs génériques lors de la spécification de types de contenu valides.
    • Pour effectuer une recherche par caractères génériques uniques, utilisez le signe de pourcentage (%). Ce caractère générique trouve les mots qui contiennent n’importe quel caractère à la place du caractère du signe de pourcentage. Par exemple, pour trouver des mots tels que texte ou test, recherchez : te%t.
    • Pour effectuer une recherche par caractères génériques, utilisez l’astérisque (*). Ce caractère générique trouve les mots qui contiennent zéro ou plusieurs caractères à la place de l’astérisque. Par exemple, pour trouver des mots tels que planifié ou placé, recherchez : pl*d.

    En utilisant le type de contenu x-www-form-urlencoded

    Si une API ou une ressource REST accepte le type de contenu application/x-www-form-urlencoded , vous pouvez récupérer les valeurs urlencoded fournies dans la demande sous la forme d’une carte JSON. Vous pouvez ensuite fournir ces paires clé-valeur urlencodées en tant que paramètres de requête, dans le corps de la demande, ou les deux. Ils sont combinés et stockés dans les paramètres de la demande. Accédez à ces paramètres via l’objet request.queryParams .

    Par exemple, si votre API est définie pour accepter le type de contenu application/x-www-form-urlencoded et que votre API est implémentée comme suit,
    (function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
    
     response.setBody(request.queryParams);
    
    })(request, response);
    … Ensuite, la requête suivante renvoie la réponse correspondante :
    POST to localhost:8080/api/now/some_api/some_resource?name3=value3&name4=value4
    Corps :
    name1=value1&name2=value2
    Réponse :
    { "result":
        { "name4": [ "value4" ], "name3": [ "value3" ], "name2": [ "value2" ],
          "name1": [ "value1" ]
        }
    }

    Envoi de type binaire dans une réponse

    Lors de l’envoi d’un type binaire dans une réponse, vous devez définir le type de contenu de la réponse et écrire le flux binaire directement à l’aide d’un objet RESTAPIResponseStream . Vous pouvez accéder à cet objet en appelant getStreamWriter() sur l’objet de réponse. Pour plus d'informations, consultez.