Transformer la demande et la réponse de l’API d’Agent virtuel
Vous pouvez transformer la demande et la réponse de l’API d’Agent virtuel dans des formats pris en charge via les points d’extension scriptés fournis dans l’API d’Agent virtuel.
Avant de commencer
Rôle requis : administrateur
Procédure
-
Accédez à la Tout > Points d’extensions système > Points d'extension scriptés
- Le point d’extension sn_va_as_service.va_api_payload_transformation transforme la charge utile du bot primaire en format standard pris en charge par l’API d’Agent virtuel avant le traitement de la demande. Le point d’extension sn_va_as_service.va_api_output_transformation transforme la réponse API d’Agent virtuel dans un format pris en charge par le bot principal.
- Les deux points d’extension scriptés ont deux paramètres : shouldTransform et transform. shouldTransform est utilisé pour déterminer si l’implémentation est exécutée. transform est utilisé pour transformer la demande ou la réponse.
-
Si vous souhaitez transformer la charge utile de la demande, procédez comme suit.
- Sélectionner le point d’extension sn_va_as_service.va_api_payload_transformation
- Dans la section Liens connexes, cliquez sur Créer une implémentation.
-
Mettez à jour le script de point d’extension selon vos besoins.
Dans le point d’extension sn_va_as_service.va_api_payload_transformation, le paramètre de demande est un objet avec deux clés : payload et headers. payload est la charge utile de la demande reçue du bot principal et headers sont les en-têtes envoyés dans la charge utile de la demande. Voici un exemple d’implémentation.
var va_api_payload_transformation = Class.create(); va_api_payload_transformation.prototype = { initialize: function() {}, shouldTransform: function(request) { return request.payload.caller === "examplebot"; }, /* return object for transform function should be in the following format transformedRequest = { payload: request.payload, headers: request.headers }; */transform: function(request) { var payload = request.payload; var headers = request.headers; var vaAPIPayload = { "userId": payload.userId, "emailId": payload.email, "message": { "text": payload.message, "typed": true }, "contextVariables": { "requester_session_language": payload.user_language }, "appInboundId": "custom_1" }; return { payload: vaAPIPayload, headers: headers }; },Figure 1. Point d’extension sn_va_as_service.va_api_payload_transformation - Cliquez sur Mettre à jour.
-
Si vous souhaitez transformer la charge utile de la réponse, procédez comme suit.
- Sélectionnez le point d’extension sn_va_as_service.va_api_output_transformation
- Dans la section Liens connexes, cliquez sur Créer une implémentation.
-
Mettez à jour le script de point d’extension selon vos besoins.
Dans le point d’extension sn_va_as_service.va_api_output_transformation, le paramètre de réponse est un objet avec deux clés : inputPayload et responsePayload. inputPayload correspond à la charge utile de la demande reçue de l’API d’Agent virtuel et responsePayload à la réponse de l’API d’Agent virtuel que vous pouvez utiliser pour générer la réponse transformée. Utilisez le champ appInboundId de la charge utile de la demande pour déterminer s’il faut renvoyer vrai ou faux. Voici un exemple d’implémentation.
var va_api_output_transformation = Class.create(); va_api_output_transformation.prototype = { initialize: function() {}, shouldTransform: function(response) { return (response.inputPayload.appInboundId === 'custom_1'); }, /* input object param for transform function should be in the following format response = { inputPayload: response.inputPayload, responsePayload: response.responsePayload }; */ transform: function(response) { //return only transformed payload return { 'custom_structure': response.responsePayload }; }, type: 'va_api_output_transformation' };Figure 2. Point d’extension sn_va_as_service.va_api_output_transformation - Cliquez sur Mettre à jour.