가상 에이전트 API 요청 및 응답 변환
가상 에이전트 API에 제공된 스크립팅된 확장점을 통해 가상 에이전트 API 요청 및 응답을 지원되는 형식으로 변환할 수 있습니다.
시작하기 전에
필요한 역할: 관리자
프로시저
-
다음으로 이동 모두 > 시스템 확장점 > 스크립팅된 확장점
- sn_va_as_service.va_api_payload_transformation 확장점은 요청을 처리하기 전에 기본 봇 페이로드를 표준 가상 에이전트 API 지원 형식으로 변환합니다. sn_va_as_service.va_api_output_transformation 확장점은 가상 에이전트 API 응답을 기본 봇이 지원하는 형식으로 변환합니다.
- 스크립팅된 두 확장점에는 두 개의 매개변수 shouldTransform 가 있습니다. 및 transform. shouldTransform 은 구현이 실행되는지 여부를 결정하는 데 사용됩니다. transform 는 요청 또는 응답을 변환하는 데 사용됩니다.
-
요청 페이로드를 변환하려면 다음 단계를 완료합니다.
- sn_va_as_service.va_api_payload_transformation 확장점 선택
- 관련 링크 섹션에서 구현 만들기를 클릭합니다.
-
요구 사항에 따라 확장점 스크립트를 업데이트합니다.
sn_va_as_service.va_api_payload_transformation 확장점에서 요청 매개변수는 두 개의 키가 있는 객체입니다. payload 및 headers. payload 는 기본 봇 headers 에서 수신한 요청 페이로드이고 헤더는 요청 페이로드에서 전송됩니다. 다음은 샘플 구현입니다.
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 }; },그림 1. sn_va_as_service.va_api_payload_transformation 확장점 - 업데이트를 클릭합니다.
-
응답 페이로드를 변환하려면 다음 단계를 완료합니다.
- sn_va_as_service.va_api_output_transformation 확장점 선택
- 관련 링크 섹션에서 구현 만들기를 클릭합니다.
-
요구 사항에 따라 확장점 스크립트를 업데이트합니다.
sn_va_as_service.va_api_output_transformation 확장점에서 응답 매개변수는 inputPayload 및 responsePayload라는 두 개의 키가 있는 객체입니다. inputPayload 은 가상 에이전트 API에서 받은 요청 페이로드이며, responsePayload 은 변환된 응답을 빌드하는 데 사용할 수 있는 가상 에이전트 API의 응답입니다. 요청 페이로드의 appInboundId 필드를 사용하여 true 또는 false를 반환할지 결정합니다. 다음은 샘플 구현입니다.
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' };그림 2. sn_va_as_service.va_api_output_transformation 확장점 - 업데이트를 클릭합니다.