private IRequest buildRequest(Request requestConfig, Map<String, Object> templateDataObjects) throws ITemplatingEngine.TemplateEngineException {
String path = requestConfig.getPath().trim();
if (!path.startsWith(SLASH_CHAR) && !path.isEmpty()) {
path = SLASH_CHAR + path;
}
URI targetUri = URI.create(targetServerUri + templateValues(path, templateDataObjects));
String requestBody = templateValues(requestConfig.getBody(), templateDataObjects);
var method = Method.valueOf(requestConfig.getMethod().toUpperCase());
log.info("targetUri: {}", targetUri);
log.info("method: {}", method);
log.info("body: {}", requestBody);
IRequest request = httpClient.newRequest(targetUri, method).
setBodyEntity(requestBody, UTF_8, requestConfig.getContentType());
Map<String, String> headers = requestConfig.getHeaders();
for (String headerName : headers.keySet()) {
request.setHttpHeader(headerName, templateValues(headers.get(headerName), templateDataObjects));
}
Map<String, String> queryParams = requestConfig.getQueryParams();
for (String queryParam : queryParams.keySet()) {
request.setQueryParam(queryParam, templateValues(queryParams.get(queryParam), templateDataObjects));
}
return request;
}