RESTAPIResponse - Inclus, Global

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • L’API RESTAPIResponse fournit des méthodes qui vous permettent de créer une réponse RESTful à une demande d’API REST scriptée.

    Cette API s’exécute dans l’espace de noms sn_ws .

    Remarque :
    Vous ne pouvez pas instancier des objets de ce type. Les objets de ce type sont créés automatiquement et ne sont accessibles que dans les scripts de ressources de l’API REST scriptés.

    RESTAPIResponse : getStreamWriter()

    Renvoie le ResponseStreamWriter pour cette réponse, ce qui vous permet d’écrire directement dans le flux de réponse.

    Définissez le type de contenu et le code d’état à l’aide des fonctions setHeaders et setStatus avant d’appeler la fonction getStreamWriter .

    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    RESTAPIResponseStream : champ d’application, global Le ResponseStreamWriter pour cette réponse. Vous pouvez utiliser cet objet pour écrire directement dans le flux de réponse.
    response.setContentType('application/json');
    response.setStatus(200);
    var writer = response.getStreamWriter();

    RESTAPIResponse - setBody(Corps de l’objet)

    Définit le contenu du corps à envoyer dans la réponse de service web.

    Tableau 3. Paramètres
    Nom Type Description
    body Objet

    Le corps de la réponse, en tant qu’objet JavaScript.

    Le contenu du corps est automatiquement sérialisé en JSON ou XML en fonction de la valeur de l’en-tête Accept transmis dans la requête.

    Tableau 4. Renvoie
    Type Description
    nul
    var body = {};
    body.name = "incident";
    body.number = "1234";
    body.caller = {"id": "user1"};
    response.setBody(body);
    
    var bodyArray = [];
    var body = {};
    body.name = "incident";
    body.number = "1234";
    body.caller = {"id":"user1"};
    bodyArray.push(body);
    response.setBody(bodyArray);

    RESTAPIResponse : setContentType(String contentType)

    Affecte une valeur à l’en-tête Type de contenu dans la réponse de service Web.

    Vous devez définir un type de contenu de réponse avant de rédiger la réponse. Le type de contenu est défini automatiquement pour les réponses de chaîne, en fonction de la valeur de l’en-tête Accepter la demande.

    Si vous définissez un type de contenu non valide, la réponse est définie par défaut sur JSON. L’échec de la définition d’un type de contenu entraîne une erreur de code d’état 500 lors de l’envoi d’une réponse binaire.

    Consultez la documentation de l’en-tête W3 Content-Type pour plus d’informations sur cet en-tête.

    Tableau 5. Paramètres
    Nom Type Description
    Type de contenu Chaîne Type de contenu du corps de la réponse, par exemple application/json.
    Tableau 6. Renvoie
    Type Description
    nul
    response.setContentType('application/json');

    RESTAPIResponse : setError(Object error)

    Configure la réponse REST pour renvoyer une erreur.

    Tableau 7. Paramètres
    Nom Type Description
    erreur Objet Objet d’erreur.

    Pour plus d’informations sur les types d’objets d’erreur pouvant être utilisés, reportez-vous à la section Exemple d’API REST scriptée : exemples de scripts.

    Tableau 8. Renvoie
    Type Description
    nul

    L’exemple suivant montre comment renvoyer une erreur à partir d’une ressource REST scriptée.

    var queryParams = request.queryParams;
    var userId = String(queryParams.user_id || '');
    var fileId = String(queryParams.file_id || '');
    if (!userId || !fileId){
      response.setError(new sn_ws_err.BadRequestError('Missing required parameters.'));
      return;
    }

    RESTAPIResponse : setHeader(en-tête de chaîne, valeur de chaîne)

    Affectez une valeur à un en-tête de réponse de service REST.

    Tableau 9. Paramètres
    Nom Type Description
    header Chaîne L’en-tête que vous souhaitez définir.
    valide Chaîne Valeur permettant d’affecter l’en-tête spécifié.
    Tableau 10. Renvoie
    Type Description
    nul
    response.setHeader("Location","<URI>");

    RESTAPIResponse : setHeaders(en-têtes d’objets)

    Définit les en-têtes de la réponse du service web.

    Tableau 11. Paramètres
    Nom Type Description
    en-têtes Objet Objet JavaScript répertoriant chaque en-tête et la valeur pour affecter cet en-tête.
    Tableau 12. Renvoie
    Type Description
    nul
    var headers = {};
    headers.X-Total-Count=100;
    headers.Location='https://instance.service-now.com/<endpoint_to_resource>';
    response.setHeaders(headers);

    RESTAPIResponse - setLocation(String location)

    Affecte une valeur à l’en-tête Emplacement dans la réponse de service web.

    Consultez la documentation de l’en-tête d’emplacement W3 pour plus d’informations sur cet en-tête.

    Tableau 13. Paramètres
    Nom Type Description
    Aucun Chaîne URI absolu vers lequel rediriger le destinataire de la réponse.
    Tableau 14. Renvoie
    Type Description
    nul

    RESTAPIResponse : setStatus(numéro d’état)

    Définit le numéro de code d’état de la réponse de service web.

    Tableau 15. Paramètres
    Nom Type Description
    statut Numéro Code d’état à envoyer dans la réponse, par exemple 200 pour indiquer la réussite. Le passage d’une valeur non numérique, telle qu’une chaîne, entraîne la valeur par défaut du code d’état sur 0.
    Tableau 16. Renvoie
    Type Description
    nul
    response.setStatus(200);