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 prendre en charge 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épannage 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 à l’aide de l’option Démarrer la trace.

Vous pouvez également effectuer des appels API RESTful synchrones en utilisant la fonction GetRestProxy() dans une action SNIPPET. Cette option ne gère pas les charges élevées aussi bien que l’action REST API et n’est pas la méthode préférée.

Cette action est l’une des méthodes prises en charge pour la connexion aux services Web dans un script Studio.

Dépendances

L’utilisation de cette action est soumise à des restrictions imposées au niveau de l’unité commercialeFermé Regroupement organisationnel de haut niveau utilisé pour gérer le support technique, la facturation et les paramètres globaux pour votre environnement CXone. Ceci afin que l’une n’ait pas d’impact sur l’autre. Les limitations 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 du dépassement de délai dans la requête. La valeur ne peut pas être supérieure à 90 secondes.
  • Taille de réponse maximale : La taille maximale de la réponse est de 32 ko. Ceci est cohérent avec la fonctionnalité Snippet existante. Si vous atteignez cette limite, vous devez réduire la taille des données renvoyées.
  • Limite d’accélérateur : La limite d’accélérateur est définie par deux paramètres :
    • Requêtes simultanées maximum : 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 requêtes simultanées permettent d’obtenir un débit beaucoup plus élevé que l’exécution d’appels API à partir d’une action Snippet. Si vous avez besoin de plus de 100 requêtes simultanées, demandez à votre Représentant de compte CXone d’augmenter la limite pour votre unité commerciale. Des autorisations spéciales sont requises.
    • Nombre en file d’attente : Lorsque les requêtes dépassent la limite, les requêtes supplémentaires entrent dans une file d’attente de traitement. Une fois que les requêtes passent en dessous de la limite, les requêtes mises en file d’attente sont traitées.
  • Coupe-circuit : Si l’URL que vous avez spécifiée est indisponible ou inaccessible, vous pouvez obtenir trop d’échecs sur votre requête. Lorsque cela se produit, CXone réduit l’exécution des requêtes de TOUTES les URL de l’action REST API pendant un certain temps. Cela permet à votre URL spécifiée de récupérer de l’échec. Les limites sont indiquées ci-dessous :
    • Temps de retrait ou durée de la pause : Si le taux d’échec est atteint, aucune requête de l’action REST API ne sera exécutée pendant 30 secondes.
    • Débit minimal : 100 requêtes par seconde. Si votre unité commerciale n’exécute pas le nombre minimum de requêtes, elle continuera à exécuter vos requêtes même si elles échouent.
    • Taux d’échec : Si 50 % des requêtes ont échoué pendant 30 secondes, vos requêtes ne seront pas exécutées pendant les 30 secondes suivantes. La période de 30 secondes est une fenêtre de roulement.

Les autres dépendances de cette action sont :

  • JSON est le seul format de réponse pris en charge. L’action exige que tout le JSON soit sur une seule ligne. Lorsque vous travaillez avec JSON dans cette action :

    • Effectuez une substitution de variable à partir d’une chaîne contenant du JSON.
    • L’option Convertir un objet de données dynamiques en JSON est prise en charge en utilisant la fonction asjson(). Notez que asjson() traite l’ensemble comme une chaîne, ce qui signifie qu’une certaine manipulation est nécessaire lorsque vous travaillez avec des valeurs booléennes ou numériques.
    • Transmettez également la variable de sortie resultSet(out) d’une action API REST précédente à cette propriété.
  • Les réponses sont renvoyées sous forme d’objets jtoken. Vous pouvez les utiliser comme vous le feriez avec des 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 également contenir des codes d’état HTTP. Toutes les réponses ne comportent pas de code d’état. S’il n’y a pas d’erreur, si l’action REST API ne génère pas de réponse valide ou si l’erreur renvoyée ne peut pas être analysée comme une réponse valide, aucun état n’est inclus.
  • Les réponses contiennent des en-têtes et le corps de la réponse. Elles incluent également les codes d’état HTTP dans deux variables, __httpstatuscode et __httpstatusdescription. Ces variables sont alimentées par les informations renvoyées par le serveur. Cependant, elles ne se remplissent pas en cas d’erreur, de dépassement de délai, de débordement, 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 faire référence aux 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

Saisissez une courte phrase qui identifie de manière unique cette action dans le script. La légende apparaît dans le canevas de script sous l’icône d’action. The default is the action name.

Verb

Prend en charge les actions REST de base 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. De nombreux types de JSON sont acceptables, tels que Jobject, Jarray ou Jtoken.

Headers

Vous permet d’ajouter des en-têtes personnalisés pour permettre l’authentification du client (tels que des jetons porteurs). Vous pouvez utiliser JSON dans ce champ.

Important Si votre terminal d’URL personnalisé nécessite des en-têtes différents, il doit être spécifié dans cette propriété. Pour assurer 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. Cette fonction est identique à la MakeRestRequest()fonction utilisée lors d’un appel à l’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élai n’est spécifié, la valeur par défaut est de 10 secondes (10 000 millisecondes).

Service Address

L’URL de l’API REST que vous voulez que l’action appelle. Vous pouvez utiliser la substitution de variables avec 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 contiennent les données renvoyées par l’exécution de l’action. Elles sont disponibles pour référence et utilisation lorsque l’action est terminée.

Propriété

Description

resultSet(out)

Une variable qui contient toute information renvoyée par l’API spécifiée dans l’adresse de service. Vous pouvez transmettre le contenu de cette variable tel quel dans l’en-tête et les paramètres si nécessaire. La réponse est renvoyée sous la forme d’un objet Jtoken, mais vous pouvez la déclarer comme un objet dynamique et l’utiliser comme vous le feriez avec d’autres objets dynamiques dans votre script.

errorArgList(out)

Un objet de données dynamiques qui contient des informations sur les erreurs qui se produisent. En cas d’erreur, l’objet contient le code d’état HTTP, la description de l’état et un message. En l’absence d’erreur, l’objet est vide.

Les codes d’état HTTP et les descriptions ne sont renvoyés qu’en cas d’erreur et peuvent être correctement analysés en tant que réponse valide. Cela signifie que toutes les erreurs n’incluront pas un code de réponse HTTP.

Conditions de la branche de résultat

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 si une erreur de temporisation se produit. Chaque paramètre est validé lors de l'enregistrement du script.

Failure

Chemin emprunté lorsqu'une erreur ou une exception se produit dans l'NICE CXone application exécutant la demande.

Error

Chemin emprunté lorsque le point de terminaison 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 les appels à l’API ou les retours de données se sont correctement déroulés (codes de réponse 2xx).