Rest Api

This help page is for Desktop Studio. This information is also available for CXone Studio.

Rest Api Action icon

Traite les appels d’API RESTful de manière synchrone. Cette action permet au système de traiter des charges plus importantes. Elle renvoie à la fois le corps et les en-têtes de l’appel API. Cela facilite le test et le débogage des scripts.

Vous pouvez tester un script contenant une action REST API et afficher les informations de réponse. Pour ce faire, exécutez le script en utilisant l’option Démarrer avec trace.

Vous pouvez également effectuer des appels d’API RESTful synchrones en utilisant la fonction GetRestProxy() dans une action SNIPPET. Cette option, qui ne traite pas les charges élevées aussi bien que l’action REST API, n’est pas la méthode privilégiée.

Il s’agit de l’une des méthodes prises en charge pour connecter des services web dans un script Studio.

Dépendances

L’utilisation de cette action est soumise à certaines limitations implosées au niveau de l’unité d’exploitationFermé Regroupement organisationnel de haut niveau utilisé pour gérer le support technique, la facturation et les paramètres globaux de votre CXone environnement. Elles visent à éviter toute incidence d’une action sur une autre. Les limitations au niveau de plateforme sont les suivantes :

  • Format de réponse : seul le format de réponse JSON est pris en charge.
  • Nouvelle tentative en cas d'échec : le gestionnaire d'actions essaiera automatiquement deux fois en cas d'échec avant de renvoyer la réponse.
  • Dépassement de délai : vous spécifiez la valeur de dépassement de délai dans la requête. La valeur ne peut pas être supérieure à 90 secondes.
  • Taille maximale de la réponse : la taille maximale de la réponse est de 32 Ko. Ceci est conforme à la fonctionnalité existante de Snippet. Si vous atteignez cette limite, vous devez réduire la taille des données renvoyées.
  • Limite : la limite est définie par deux paramètres :
    • Nombre maximal de demandes simultanées  : jusqu’à 100 requêtes simultanées sont autorisées par défaut. Cette limite est la même pour tous les clients CXone. Cela signifie que 100 demandes simultanées donnent lieu à un débit beaucoup plus élevé que l’utilisation d’une action Snippet pour effectuer des appels d’API. Si vous avez besoin de plus de 100 demandes simultanées, contactez votre Représentant de compte CXone pour qu’il augmente la limite pour votre unité d’exploitation. Des approbations spéciales sont requises.
    • Nombre en file d’attente : lorsque le nombre de demandes dépasse la limite, les demandes supplémentaires aboutissent dans une file d’attente de traitement. Lorsque le nombre de demandes passe sous la limite, les demandes en file d'attente sont traitées.
  • Disjoncteur : si l'URL que vous avez spécifiée est hors service ou inaccessible, vous risquez d'obtenir trop d'échecs sur votre demande. Dans ce cas, CXone réduira l’exécution des demandes de TOUTES LES URL issues de l’action REST API pendant un certain temps. Cela permet à l'URL spécifiée de se remettre de la panne. Les limites sont identifiées ci-dessous :
    • Temps de pause ou durée de la pause : si le taux d’échec est atteint, aucune demande issue de l’action REST API ne sera exécutée pendant 30 secondes.
    • Débit minimum : 100 demandes par seconde. Si votre unité d’exploitation n’exécute pas le nombre minimum de demandes, il continuera à exécuter vos demandes, même si celles-ci échouent.
    • Taux d'échec : si 50 % des requêtes ont échoué pendant 30 secondes, vos demandes ne seront pas exécutées pendant les 30 secondes suivantes. 30 secondes est une fenêtre de roulement.

Autres dépendances de cette action :

  • JSON est le seul format de réponse pris en charge. L’action requiert que tout le code JSON soit sur une seule ligne. Lorsque vous utilisez des données JSON dans cette action, vous pouvez :

    • Effectuez une substitution de variables à partir d’une chaîne contenant des données JSON.
    • La Conversion d’un objet de données dynamiques en JSON est prise en charge grâce à la fonction asjson(). Notez que asjson() traite tout sous forme de chaîne ; par conséquent, certaines manipulations sont nécessaires si vous travaillez avec des valeurs booléennes ou numériques.
    • Transmettez la variable de sortie resultSet(out) d’une action d’API REST précédente à cette propriété.
  • Les réponses sont renvoyées sous forme d’objets jtoken. Vous pouvez les utiliser de la même façon que vous utilisez les objets de données dynamiques dans votre script.
  • Les réponses contiennent des en-têtes et le corps de la réponse. Elles peuvent aussi contenir des codes d’état HTTP. Les réponses ne contiennent pas forcément des codes d’état. S’il n’y a pas d’erreur, si l’action REST API ne parvient pas à générer une réponse valide, ou si l’erreur renvoyée ne peut pas être analysée comme une réponse valide, l’état n’est inclus.
  • Les réponses contiennent des en-têtes et le corps de la réponse. Ils incluent également les codes de statut HTTP dans deux variables, __httpstatuscode et __httpstatusdescription. Ces variables sont remplies avec les informations renvoyées par le serveur. Toutefois, elles ne sont pas remplies en cas d'erreur, de dépassement de délai, de trop-plein, de rupture de circuit ou de toute autre situation dans laquelle le serveur ne renvoie pas de réponse.
  • Vous pouvez utiliser plusieurs actions REST API dans un script, mais elles ne peuvent pas référencer les mêmes objets.

Propriétés d'entrée

Ces propriétés définissent les données que l'action utilise lors de son exécution.

Propriété

Description

Caption

Entrez une courte phrase qui identifie cette action dans le script de manière unique. La légende est affichée sur le canevas de script sous l’icône de l’action. The default is the action name.

Verb

Prend en charge les actions de base REST telles que GET, PUT, POST, DELETE et PATCH.

Parameters

Spécifiez les paramètres à inclure ou les données à publier sous la forme d'un objet JSON composé de paires clé-valeur. Plusieurs types de JSON sont acceptables, par exemple Jobject, Jarray ou Jtoken.

Headers

Permet d’ajouter des en-têtes personnalisés pour l’authentification du client; comme les jetons de support. Vous pouvez utiliser des données JSON dans ce champ.

Important Si votre point de terminaison d'URL personnalisé nécessite des en-têtes différents, il doit être spécifié dans cette propriété. Pour maintenir la parité des fonctionnalités avec l’action Snippet existante, CXone ajoute les en-têtes suivants par défaut :

{"Accept":"application/json", "Content-Type" :"application/x-www-form-urlencoded"}

Command

Actuellement, la seule option est MakeRestRequest. Elle fonctionne de la même façon que la fonction MakeRestRequest() utilisée pour effectuer un appel d’API REST dans une action Snippet.

TimeOutInMilliSeconds

Permet de spécifier et d'honorer un délai d'expiration de l'appel REST. Doit durer moins de 90 secondes (90000 millisecondes). Si aucun dépassement de délai n'est défini, la valeur par défaut est 10 secondes (10 000 millisecondes).

Service Address

L’URL de l’API REST que l’action doit appeler. Vous pouvez utiliser la substitution de variables dans cette propriété. Utilisez la propriété Parameters pour spécifier les paramètres de requête à inclure.

Propriétés de sortie

Ces propriétés contiennent des variables qui stockent les données renvoyées par l'exécution de l'action. Elles sont disponibles à des fins de référence et d’utilisation lorsque l'action est terminée.

Propriété

Description

resultSet(out)

Une variable contenant toute information renvoyée à partir de l’API spécifiée dans l’Adresse de service. Vous pouvez transmettre le contenu de cette variable tel quel à l’en-tête et aux paramètres si nécessaire. La réponse est renvoyée sous forme d’objet jtoken, mais vous pouvez la déclarer comme objet dynamique et l’utiliser comme tout autre objet dynamique dans votre script.

errorArgList(out)

Un objet de données contenant des informations sur les erreurs qui peuvent se produire. Lorsqu’une erreur se produit, un objet contient le code d’état HTTP, la description de l’état et un message. S’il n’y a pas d’erreur, l’objet est vide.

Seuls les codes et descriptions d’état HTTP sont renvoyés dans l’erreur et peuvent être analysés comme réponse valide. Par conséquent, toutes les erreurs ne contiennent pas un code de réponse HTTP.

Conditions de branche résultantes

Les conditions de branche de résultat vous permettent de créer des branches dans votre script afin de gérer différents résultats lors de l'exécution d'une action.

Condition

Description

Throttle

Chemin emprunté lorsque trop de demandes sont exécutées dans un court laps de temps. Voir les limitations ci-dessous pour plus de détails.

InvalidInput

Chemin emprunté si une entrée non valide est trouvée ou qu'une erreur de temporisation se produit. Chaque paramètre est validé lors de la sauvegarde du script.

Failure

Chemin emprunté lorsqu'une erreur ou une exception se produit dans leNICE CXoneapplication exécuter la demande.

Error

Chemin emprunté lorsque le point de terminaison du client distant renvoie un code d'erreur http.

Default

Chemin emprunté lorsque la réponse n'est pas reçue dans les 90 secondes.

Success

Chemin emprunté si l’action se termine sans erreur et si tous les appels d’API ou retours de données ont abouti (codes de réponse 2xx).