public class RestServiceInvoker extends Object implements ServiceInvoker
Modifier and Type | Class and Description |
---|---|
protected static class |
RestServiceInvoker.TimeoutTask |
Modifier and Type | Field and Description |
---|---|
static String |
KEY |
protected com.fasterxml.jackson.databind.ObjectMapper |
objectMapper |
protected ServiceRegistryEngineConfiguration |
serviceRegistryEngineConfiguration |
protected Timer |
timer |
Constructor and Description |
---|
RestServiceInvoker(ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration,
com.fasterxml.jackson.databind.ObjectMapper objectMapper) |
Modifier and Type | Method and Description |
---|---|
protected void |
addHeader(MultiValueMap<String,String> headers,
String header) |
protected com.fasterxml.jackson.databind.JsonNode |
applyOutputPathIfApplicable(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
com.fasterxml.jackson.databind.JsonNode resultJsonNode) |
protected boolean |
asBoolean(Object object) |
protected int |
asInt(Object object) |
protected void |
configureRequest(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
HttpRequest request,
ServiceInvocationVariablesContainer variablesContainer) |
protected RestServiceInvocationResponse |
createCopy(RestServiceInvocationResponse response,
com.fasterxml.jackson.databind.node.ObjectNode responseData) |
protected org.apache.http.impl.client.HttpClientBuilder |
createHttpClientBuilder(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
ServiceInvocationContext context) |
protected String |
decode(String string) |
protected String |
encodeBasicAuth(String username,
String password,
ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation) |
protected URI |
ensureUrlIsEncodedAndConvertToUri(URL url) |
HttpResponse |
execute(HttpRequest request,
ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
ServiceInvocationContext context) |
protected RestServiceAuthorization |
getAuthorization(com.fasterxml.jackson.databind.JsonNode config) |
protected RestServiceAuthorization |
getAuthorization(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation) |
protected String |
getBody(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
ExpressionManager expressionManager,
ServiceInvocationVariablesContainer serviceInvocationVariablesContainer) |
protected MultiValueMap<String,String> |
getHeaders(com.fasterxml.jackson.databind.JsonNode config,
String serviceDefinitionKey,
String serviceOperationKey) |
protected String |
getHeadersAsString(org.apache.http.Header[] headers) |
protected MultiValueMap<String,String> |
getHeadersFromGlobalProperties(String globalPropKey) |
protected String |
getUrl(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation) |
RestServiceInvocationResponse |
invoke(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
ServiceInvocationContext context) |
List<ServiceInvocationResponse> |
invokeList(ServiceDefinitionModel serviceDefinition,
ServiceOperation serviceOperation,
ServiceInvocationContext serviceInvocationContext) |
protected boolean |
isJsonContentType(HttpResponse httpResponse) |
protected boolean |
lookupBooleanProperty(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
String field,
boolean defaultValue) |
protected MultiValueMap<String,String> |
lookupHeaders(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation) |
protected int |
lookupIntegerProperty(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
String field,
int defaultValue) |
protected String |
lookupStringProperty(ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
String field,
String defaultValue) |
HttpResponse |
perform(org.apache.http.impl.client.CloseableHttpClient client,
ServiceDefinitionModel serviceDefinitionModel,
ServiceOperation serviceOperation,
ServiceInvocationContext context,
HttpRequest httpRequest) |
protected void |
processInputParameter(ServiceInvocationVariablesContainer serviceInvocationVariablesContainer,
ExpressionManager expressionManager,
com.fasterxml.jackson.databind.node.ObjectNode bodyJson,
ServiceInputParameter inputParameter) |
protected String |
resolveExpressionAsString(String value,
ExpressionManager expressionManager,
ServiceInvocationVariablesContainer variablesContainer) |
protected MultiValueMap<String,String> |
resolveHeaderExpressions(MultiValueMap<String,String> headers,
ExpressionManager expressionManager,
ServiceInvocationVariablesContainer variablesContainer) |
protected void |
setConfig(org.apache.http.client.methods.HttpRequestBase base,
HttpRequest requestInfo,
int socketTimeout,
int connectTimeout,
int connectionRequestTimeout) |
protected void |
setHeaders(org.apache.http.HttpMessage base,
String headers) |
protected void |
setRequestEntity(HttpRequest requestInfo,
org.apache.http.client.methods.HttpEntityEnclosingRequestBase requestBase) |
protected String |
toHeadersString(MultiValueMap<String,String> headers) |
protected void |
validate(HttpRequest request) |
public static final String KEY
protected ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration
protected com.fasterxml.jackson.databind.ObjectMapper objectMapper
protected final Timer timer
public RestServiceInvoker(ServiceRegistryEngineConfiguration serviceRegistryEngineConfiguration, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
public RestServiceInvocationResponse invoke(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)
invoke
in interface ServiceInvoker
public List<ServiceInvocationResponse> invokeList(ServiceDefinitionModel serviceDefinition, ServiceOperation serviceOperation, ServiceInvocationContext serviceInvocationContext)
invokeList
in interface ServiceInvoker
protected RestServiceInvocationResponse createCopy(RestServiceInvocationResponse response, com.fasterxml.jackson.databind.node.ObjectNode responseData)
protected void configureRequest(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, HttpRequest request, ServiceInvocationVariablesContainer variablesContainer)
protected String getUrl(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation)
protected String getBody(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ExpressionManager expressionManager, ServiceInvocationVariablesContainer serviceInvocationVariablesContainer)
protected void processInputParameter(ServiceInvocationVariablesContainer serviceInvocationVariablesContainer, ExpressionManager expressionManager, com.fasterxml.jackson.databind.node.ObjectNode bodyJson, ServiceInputParameter inputParameter)
protected String lookupStringProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, String field, String defaultValue)
protected RestServiceAuthorization getAuthorization(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation)
protected RestServiceAuthorization getAuthorization(com.fasterxml.jackson.databind.JsonNode config)
protected String toHeadersString(MultiValueMap<String,String> headers)
protected MultiValueMap<String,String> lookupHeaders(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation)
protected MultiValueMap<String,String> getHeadersFromGlobalProperties(String globalPropKey)
protected MultiValueMap<String,String> getHeaders(com.fasterxml.jackson.databind.JsonNode config, String serviceDefinitionKey, String serviceOperationKey)
protected void addHeader(MultiValueMap<String,String> headers, String header)
protected MultiValueMap<String,String> resolveHeaderExpressions(MultiValueMap<String,String> headers, ExpressionManager expressionManager, ServiceInvocationVariablesContainer variablesContainer)
protected String resolveExpressionAsString(String value, ExpressionManager expressionManager, ServiceInvocationVariablesContainer variablesContainer)
protected int lookupIntegerProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, String field, int defaultValue)
protected int asInt(Object object)
protected boolean lookupBooleanProperty(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, String field, boolean defaultValue)
protected boolean asBoolean(Object object)
protected com.fasterxml.jackson.databind.JsonNode applyOutputPathIfApplicable(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, com.fasterxml.jackson.databind.JsonNode resultJsonNode)
public HttpResponse execute(HttpRequest request, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)
protected org.apache.http.impl.client.HttpClientBuilder createHttpClientBuilder(ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context)
protected void validate(HttpRequest request)
public HttpResponse perform(org.apache.http.impl.client.CloseableHttpClient client, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation, ServiceInvocationContext context, HttpRequest httpRequest)
protected void setRequestEntity(HttpRequest requestInfo, org.apache.http.client.methods.HttpEntityEnclosingRequestBase requestBase) throws UnsupportedEncodingException
UnsupportedEncodingException
protected void setConfig(org.apache.http.client.methods.HttpRequestBase base, HttpRequest requestInfo, int socketTimeout, int connectTimeout, int connectionRequestTimeout)
protected String getHeadersAsString(org.apache.http.Header[] headers)
protected void setHeaders(org.apache.http.HttpMessage base, String headers) throws IOException
IOException
protected URI ensureUrlIsEncodedAndConvertToUri(URL url) throws URISyntaxException
URISyntaxException
protected boolean isJsonContentType(HttpResponse httpResponse)
protected String encodeBasicAuth(String username, String password, ServiceDefinitionModel serviceDefinitionModel, ServiceOperation serviceOperation)