public abstract class ApiMethod<T extends ApiMethod<T,TResult>,TResult> extends Object implements RequestCommand<TResult>, ClientRequestCommand<TResult>
| Modifier and Type | Class and Description |
|---|---|
static class |
ApiMethod.ParamEntry<K,V> |
| Constructor and Description |
|---|
ApiMethod(ApiHttpClient apiHttpClient) |
ApiMethod(ApiHttpClient apiHttpClient,
ApiHttpHeaders headers,
List<ApiMethod.ParamEntry<String,String>> queryParams) |
ApiMethod(ApiMethod<T,TResult> apiMethod) |
| Modifier and Type | Method and Description |
|---|---|
T |
addHeader(String key,
String value)
adds an additional header with the specified value
|
<V> T |
addQueryParam(String key,
V value)
add an additional query parameter
|
T |
addQueryParams(List<ApiMethod.ParamEntry<String,String>> queryParams)
add the query parameters
|
T |
contentType(String contentType)
set specific content type
|
ApiHttpRequest |
createHttpRequest() |
abstract boolean |
equals(Object o) |
CompletableFuture<ApiHttpResponse<TResult>> |
execute() |
abstract CompletableFuture<ApiHttpResponse<TResult>> |
execute(ApiHttpClient client) |
<TReturn> CompletableFuture<ApiHttpResponse<TReturn>> |
execute(ApiHttpClient client,
Class<TReturn> returnType) |
<TReturn> CompletableFuture<ApiHttpResponse<TReturn>> |
execute(ApiHttpClient client,
JavaType returnJavaType) |
<TReturn> CompletableFuture<ApiHttpResponse<TReturn>> |
execute(ApiHttpClient client,
com.fasterxml.jackson.core.type.TypeReference<TReturn> returnTypeReference) |
<TReturn> CompletableFuture<ApiHttpResponse<TReturn>> |
execute(Class<TReturn> returnType) |
<TReturn> CompletableFuture<ApiHttpResponse<TReturn>> |
execute(JavaType returnJavaType) |
<TReturn> CompletableFuture<ApiHttpResponse<TReturn>> |
execute(com.fasterxml.jackson.core.type.TypeReference<TReturn> returnTypeReference) |
ApiHttpResponse<TResult> |
executeBlocking() |
ApiHttpResponse<TResult> |
executeBlocking(ApiHttpClient client) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(ApiHttpClient client,
Class<TReturn> clazz) |
abstract ApiHttpResponse<TResult> |
executeBlocking(ApiHttpClient client,
Duration timeout) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(ApiHttpClient client,
Duration timeout,
Class<TReturn> clazz) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(ApiHttpClient client,
Duration timeout,
JavaType javaType) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(ApiHttpClient client,
Duration timeout,
com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(ApiHttpClient client,
JavaType javaType) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(ApiHttpClient client,
com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(Class<TReturn> clazz) |
ApiHttpResponse<TResult> |
executeBlocking(Duration timeout) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(Duration timeout,
Class<TReturn> clazz) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(Duration timeout,
JavaType javaType) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(Duration timeout,
com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(JavaType javaType) |
<TReturn> ApiHttpResponse<TReturn> |
executeBlocking(com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference) |
String |
getFirstQueryParam(String key) |
ApiHttpHeaders |
getHeaders() |
List<String> |
getQueryParam(String key) |
List<ApiMethod.ParamEntry<String,String>> |
getQueryParams() |
String |
getQueryParamUriString() |
List<String> |
getQueryParamUriStrings() |
abstract int |
hashCode() |
int |
reflectionHashCode() |
CompletableFuture<ApiHttpResponse<byte[]>> |
send() |
ApiHttpResponse<byte[]> |
sendBlocking() |
ApiHttpResponse<byte[]> |
sendBlocking(Duration timeout) |
String |
toString() |
<U> T |
with(BiFunction<T,U,T> op,
U arg)
allows to provide a function to modify the ApiMethod itself
|
T |
with(Function<T,T> op)
allows to provide a function to modify the ApiMethod itself
|
T |
withHeader(String key,
String value)
set the header with the specified value
|
T |
withHeaders(ApiHttpHeaders headers)
set the headers
|
T |
withHttpRequest(Function<ApiHttpRequest,ApiHttpRequest> op)
allows to modify the HTTP request before it will be executed
|
T |
withoutHeader(String key)
removes the specified header
|
T |
withoutQueryParam(String key)
removes the specified query parameter
|
<V> T |
withQueryParam(String key,
V value)
set the query parameter with the specified value
|
T |
withQueryParams(List<ApiMethod.ParamEntry<String,String>> queryParams)
set the query parameters
|
public ApiMethod(ApiHttpClient apiHttpClient)
public ApiMethod(ApiHttpClient apiHttpClient, ApiHttpHeaders headers, List<ApiMethod.ParamEntry<String,String>> queryParams)
public T addHeader(String key, String value)
key - header namevalue - header valuepublic T withoutHeader(String key)
key - header namepublic T withHeader(String key, String value)
key - header namevalue - header valuepublic T withHeaders(ApiHttpHeaders headers)
headers - public T contentType(String contentType)
contentType - public ApiHttpHeaders getHeaders()
public <V> T addQueryParam(String key, V value)
V - value typekey - query parameter namevalue - query parameter valuepublic <V> T withQueryParam(String key, V value)
V - value typekey - query parameter namevalue - query parameter valuepublic T withoutQueryParam(String key)
key - query parameter namepublic T withQueryParams(List<ApiMethod.ParamEntry<String,String>> queryParams)
queryParams - list of query parameterspublic T addQueryParams(List<ApiMethod.ParamEntry<String,String>> queryParams)
queryParams - list of query parameterspublic List<ApiMethod.ParamEntry<String,String>> getQueryParams()
public List<String> getQueryParam(String key)
public List<String> getQueryParamUriStrings()
public String getQueryParamUriString()
@Nullable public String getFirstQueryParam(String key)
public ApiHttpRequest createHttpRequest()
public CompletableFuture<ApiHttpResponse<TResult>> execute()
execute in interface RequestCommand<TResult>public abstract CompletableFuture<ApiHttpResponse<TResult>> execute(ApiHttpClient client)
execute in interface ClientRequestCommand<TResult>public T withHttpRequest(Function<ApiHttpRequest,ApiHttpRequest> op)
op - decorator functionpublic T with(Function<T,T> op)
op - decorator functionpublic <U> T with(BiFunction<T,U,T> op, U arg)
U - the method type itselfop - decorator functionarg - decorator function argumentpublic <TReturn> CompletableFuture<ApiHttpResponse<TReturn>> execute(Class<TReturn> returnType)
public <TReturn> CompletableFuture<ApiHttpResponse<TReturn>> execute(ApiHttpClient client, Class<TReturn> returnType)
public <TReturn> CompletableFuture<ApiHttpResponse<TReturn>> execute(com.fasterxml.jackson.core.type.TypeReference<TReturn> returnTypeReference)
public <TReturn> CompletableFuture<ApiHttpResponse<TReturn>> execute(ApiHttpClient client, com.fasterxml.jackson.core.type.TypeReference<TReturn> returnTypeReference)
public <TReturn> CompletableFuture<ApiHttpResponse<TReturn>> execute(JavaType returnJavaType)
public <TReturn> CompletableFuture<ApiHttpResponse<TReturn>> execute(ApiHttpClient client, JavaType returnJavaType)
public ApiHttpResponse<TResult> executeBlocking()
executeBlocking in interface RequestCommand<TResult>public ApiHttpResponse<TResult> executeBlocking(ApiHttpClient client)
executeBlocking in interface ClientRequestCommand<TResult>public ApiHttpResponse<TResult> executeBlocking(Duration timeout)
executeBlocking in interface RequestCommand<TResult>public abstract ApiHttpResponse<TResult> executeBlocking(ApiHttpClient client, Duration timeout)
executeBlocking in interface ClientRequestCommand<TResult>public <TReturn> ApiHttpResponse<TReturn> executeBlocking(Class<TReturn> clazz)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(ApiHttpClient client, Class<TReturn> clazz)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(Duration timeout, Class<TReturn> clazz)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(ApiHttpClient client, Duration timeout, Class<TReturn> clazz)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(ApiHttpClient client, com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(Duration timeout, com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(ApiHttpClient client, Duration timeout, com.fasterxml.jackson.core.type.TypeReference<TReturn> typeReference)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(JavaType javaType)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(ApiHttpClient client, JavaType javaType)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(Duration timeout, JavaType javaType)
public <TReturn> ApiHttpResponse<TReturn> executeBlocking(ApiHttpClient client, Duration timeout, JavaType javaType)
public CompletableFuture<ApiHttpResponse<byte[]>> send()
public ApiHttpResponse<byte[]> sendBlocking()
public ApiHttpResponse<byte[]> sendBlocking(Duration timeout)
public int reflectionHashCode()