RESTResponseV2 - Champ d’application, global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 5 minutes de lecture
  • L’API RESTResponseV2 vous permet d’utiliser les données renvoyées par un message REST sortant en code JavaScript.

    Un objet RESTResponseV2 est renvoyé par les méthodes RESTMessageV2execute() et executeAsync().

    Vous pouvez utiliser cette API dans des applications incluses dans le périmètre ou dans le périmètre global.

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

    RESTResponseV2 : getAllHeaders()

    Renvoie tous les en-têtes contenus dans la réponse, y compris les en-têtes en double.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    Liste<GlideHTTPHeader> Liste des en-têtes contenus dans la réponse. Chaque en-tête est représenté sous la forme d’un objet GlideHTTPHeader qui contient le nom et la valeur de l’en-tête.

    L’exemple de code de suivi montre comment appeler l’API de table REST, puis répertorie tous les en-têtes trouvés dans la réponse.

    var request = new sn_ws.RESTMessageV2();
    request.setEndpoint('http://<SN_Instance_host>/api/now/table/incident');
    request.setHttpMethod('GET');
    
    request.setBasicAuth('username', 'password');
    request.setRequestHeader("Accept", "application/json");
    var res = request.execute();
    if (res.getStatusCode() != 200) {
      gs.info('Bad Request');
    }
    
    var headers = res.getAllHeaders();
    for(var i in headers){
      gs.info(headers[i].name + ': ' + headers[i].value);
    }

    En-têtes de réponses

    X-Is-Logged-In: true
    X-Transaction-ID: e3003cb2db8c
    X-Total-Count: 66
    X-Content-Type-Options: nosniff
    Pragma: no-store,no-cache
    Cache-Control: no-cache,no-store,must-revalidate,max-age=-1
    Expires: 0
    Content-Type: application/json;charset=UTF-8
    Date: Fri, 14 May 2021 16:05:10 GMT
    Connection: close
    Server: ServiceNow
    JSESSIONID=5041870726ADADFAB2EE2BF8E7E01596; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_user=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_user_session=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_user_route=glide.f1aa2015b3fa5fa8dfe567386cde8fd5; Max-Age=2147483647; Expires=Wed, 01-Jun-2089 19:19:17 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_session_store=AF003CB2DB8CF8103DD9C39D139619C7; Max-Age=1800; Expires=Fri, 14-May-2021 16:35:10 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: BIGipServerpool_ddershem=2643023626.45630.0000; path=/; Httponly; Secure; SameSite=None; Secure
    Strict-Transport-Security: max-age=63072000; includeSubDomains

    RESTResponseV2 - getBody()

    Obtient le contenu du corps de la réponse REST.

    Utilisez cette fonction lorsque vous souhaitez obtenir le corps de la requête sous forme de contenu texte. N’utilisez pas cette méthode lors de l’enregistrement de la réponse en tant que pièce jointe binaire. Si un objet RESTMessageV2 appelle la fonction saveResponseBodyAsAttachment(... ), l’utilisation de getBody() sur l’objet RESTResponseV2 associé provoque une erreur. Lors de l’enregistrement de la réponse en tant que pièce jointe, si le message REST sortant échoue, appelez getErrorMessage() sur la réponse pour récupérer le contenu du corps.

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Chaîne Corps de réponse REST.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var responseBody = response.getBody();

    RESTResponseV2 - getCookies()

    Renvoie tous les cookies inclus dans la réponse.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    Objet Tableau de chaînes représentant les cookies. Itérez à travers le tableau pour effectuer des opérations sur chaque cookie.

    Affichez les cookies individuels de la réponse.

    var cookies = response.getCookies();
    for (var i = 0; i < cookies.length; i++) {
      gs.info('cookie: ' + cookies.get(i));
    }
    Sortie :
    cookie: JSESSIONID=4135AA97A5D12DA22EF614AA2B0CAFD8.node20; Path=/; Secure; HttpOnly
    cookie: SABASESSIONID=370152970.36895.0000; path=/

    RESTResponseV2 : getErrorCode()

    Obtient le code d’erreur numérique en cas d’erreur au cours de la transaction REST.

    Ce code d’erreur est spécifique au Now Platform, il ne s’agit pas d’un code d’erreur HTTP. Fournissez ce code d’erreur si vous avez besoin d’aide de l’assistance clientèle ServiceNow.

    Remarque :
    Pour récupérer le contenu du message d’erreur réel, utilisez la méthode getBody( ).
    Tableau 7. Paramètres
    Nom Type Description
    Aucun
    Tableau 8. Renvoie
    Type Description
    Numéro Code d’erreur numérique, par exemple 1 pour le délai d’expiration du socket.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var errorCode = response.getErrorCode();

    RESTResponseV2 : getErrorMessage()

    Obtient le message d’erreur en cas d’erreur au cours de la transaction REST.

    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    Type Description
    Chaîne Message d'erreur.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var errorMsg = response.getErrorMessage();

    RESTResponseV2 : getHeader(Nom de chaîne)

    Obtient la valeur d’un en-tête spécifié.

    Tableau 11. Paramètres
    Nom Type Description
    nom Chaîne Nom de l’en-tête dont vous souhaitez obtenir la valeur, par exemple Set-Cookie.
    Tableau 12. Renvoie
    Type Description
    Chaîne Valeur de l’en-tête spécifié.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var headerVal = response.getHeader("Content-Type");

    RESTResponseV2 : getHeaders()

    Obtient tous les en-têtes renvoyés dans la réponse REST et les valeurs associées.

    Remarque :
    Si un en-tête est présent plusieurs fois dans la réponse, par exemple un en-tête Set-Cookie, cette fonction renvoie uniquement le dernier des en-têtes dupliqués. Pour renvoyer tous les en-têtes, y compris les doublons, utilisez la fonction getAllHeaders().
    Tableau 13. Paramètres
    Nom Type Description
    Aucun
    Tableau 14. Renvoie
    Type Description
    Objet Objet qui mappe le nom de chaque en-tête à la valeur associée.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var headers = response.getHeaders();

    RESTResponseV2 : getQueryString()

    Obtient la requête entièrement résolue envoyée au point de terminaison REST.

    Cette requête contient l’URL du point de terminaison ainsi que toutes les valeurs affectées aux variables dans le message REST. Utilisez cette méthode uniquement avec des réponses à des demandes directes. Cette méthode n’est pas prise en charge pour les demandes envoyées de manière asynchrone ou à l’aide d’un MID Server.

    Tableau 15. Paramètres
    Nom Type Description
    Aucun
    Tableau 16. Renvoie
    Type Description
    Chaîne Requête entièrement résolue.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var queryString = response.getQueryString();

    RESTResponseV2 : getResponseAttachmentSysid()

    Obtient la valeur sys_id de la pièce jointe créée à partir du contenu du corps de la réponse.

    Si l’objet RESTMessageV2 associé à cette réponse appelle la fonction saveResponseBodyAsAttachment(... ), utilisez getResponseAttachmentSysid() pour obtenir la sys_id de l’enregistrement de pièce jointe créé. Utilisez cette fonction lorsque vous souhaitez effectuer des opérations supplémentaires avec le nouvel enregistrement de pièce jointe.

    Tableau 17. Paramètres
    Nom Type Description
    Aucun
    Tableau 18. Renvoie
    Type Description
    Chaîne Sys_id du nouvel enregistrement de pièce jointe.

    RESTResponseV2 : getStatusCode()

    Obtient le code d’état HTTP numérique renvoyé par le fournisseur REST.

    Tableau 19. Paramètres
    Nom Type Description
    Aucun
    Tableau 20. Renvoie
    Type Description
    Numéro Code d’état numérique renvoyé par le fournisseur REST, par exemple 200 pour une réponse réussie.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var statusCode = response.getStatusCode();

    RESTResponseV2 - haveError()

    Indique si une erreur s’est produite lors de la transaction REST.

    Tableau 21. Paramètres
    Nom Type Description
    Aucun
    Tableau 22. Renvoie
    Type Description
    booléen Renvoie vrai s’il y a eu une erreur, faux s’il n’y a pas eu d’erreur.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var error = response.haveError();

    RESTResponseV2 : waitForResponse(Number timeoutSecs)

    Définissez le délai d’attente par l’instance d’une réponse du fournisseur de service Web.

    Cette méthode remplace la propriété glide.rest.outbound.ecc_response.timeout pour cette réponse REST.

    Tableau 23. Paramètres
    Nom Type Description
    délai d’expiration en secondes Numéro Durée d’attente de cette réponse, en secondes.
    Tableau 24. Renvoie
    Type Description
    nul
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.executeAsync();
    response.waitForResponse(60);