데이터 작업을 위한 URI(URL) 형식 인코딩
일부 API, 특히 로그인 API에는 HTTP 요청에 대한 URL 형식 인코딩이 필요합니다. URI 인코딩을 위한 Genesys Cloud 데이터 작업을 구성하려면:
-
Create a
Content-Type
request header with the valuex-www-form-urlencoded
. -
Set the Request Body Template in the UI, or
requestTemplate
in JSON or Terraform with the parameters as key-value pairs separated by ampersand (&). For example,key1=value1&key2=value2
.참고: The request body is not JSON, it is a string formatted as URL query arguments. -
사용
$esc.uriEncode()
/와 같은 URL 예약 문자가 포함된 값이나 변수를 둘러쌉니다. ? : @ – . _ ! ~ $ & ' ( ) * + , ; =.
JSON example
"config": { "request": { "requestTemplate": "grant_type=client_credentials&scope=customers_read_write&audience=$esc.uriEncode(\"https://api.example.com/v1/customers\")", "headers": { "Authentication": "Basic $encoding.base64(\"${credentials.clientid}:${credentials.clientSecret}\"", "Content-Type": "application/x-www-form-urlencoded" }, "requestType": "POST", "requestUrlTemplate": "${credentials.loginUrl}" } }
The following example shows the user input values that have the reserved characters:
"config": { "request": { "headers": { "Content-Type": "application/x-www-form-urlencoded" }, "requestUrlTemplate": "https://api.example.com/v1/customers", "requestTemplate": "description=$esc.uriEncode(\"${input.DESCRIPTION}\")&email=$esc.uriEncode(\"${input.EMAIL}\")", "requestType": "POST" } }
$esc.uriEncode()
사용자 입력으로 기능합니다. 데이터 작업은 특수 문자를 사용한 사용자 입력을 자동으로 이스케이프할 수 없으므로 보안을 위해 해당하는 경우 해당 기능을 사용해야 합니다. 호출된 엔터티에서 데이터가 Architect 또는 Script를 포함하여 제공되지만 URL 및 URL 양식을 처리할 때 이스케이프를 수행해야 합니다. 통합에 대한 자세한 내용은 다음을 참조하십시오. 데이터 작업 통합 정보.