Package dev.mayuna.simpleapi
Class ApiRequestBuilder<T>
- java.lang.Object
-
- dev.mayuna.simpleapi.ApiRequestBuilder<T>
-
- Type Parameters:
T- The type of the response.
public class ApiRequestBuilder<T> extends java.lang.ObjectA builder forApiRequest.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ApiRequest<T>build()Builds theApiRequest.static <T> ApiRequestBuilder<T>ofResponse(WrappedApi wrappedApi, java.lang.Class<T> responseClass)ApiRequestBuilder<T>withBodyHandler(java.net.http.HttpResponse.BodyHandler<?> bodyHandler)Sets theHttpResponse.BodyHandlerof the request.ApiRequestBuilder<T>withBodyPublisher(java.net.http.HttpRequest.BodyPublisher bodyPublisher)Sets theHttpRequest.BodyPublisherof the request.ApiRequestBuilder<T>withEndpoint(@NonNull java.lang.String endpoint)Sets the endpoint of the request.ApiRequestBuilder<T>withPathParameter(@NonNull PathParameter pathParameter)Adds aPathParameterto the request.ApiRequestBuilder<T>withPathParameters(@NonNull PathParameter pathParameter, PathParameter... pathParameters)Adds multiplePathParameters to the request.ApiRequestBuilder<T>withRequestHeader(@NonNull RequestHeader requestHeader)Adds aRequestHeaderto the request.ApiRequestBuilder<T>withRequestHeaders(@NonNull RequestHeader requestHeader, RequestHeader... requestHeaders)Adds multipleRequestHeaders to the request.ApiRequestBuilder<T>withRequestMethod(@NonNull RequestMethod requestMethod)Sets the request method of the request.
Pro-tip: You can use pre-defined instances ofRequestMethodlikeRequestMethod.GET.ApiRequestBuilder<T>withRequestMethod(@NonNull java.lang.String requestMethod)ApiRequestBuilder<T>withRequestQueries(@NonNull RequestQuery requestQuery, RequestQuery... requestQueries)Adds multipleRequestQuerys to the request.ApiRequestBuilder<T>withRequestQuery(@NonNull RequestQuery requestQuery)Adds aRequestQueryto the request.ApiRequestBuilder<T>withUrl(@NonNull java.lang.String url)Sets the url of the request.
-
-
-
Method Detail
-
ofResponse
public static <T> ApiRequestBuilder<T> ofResponse(WrappedApi wrappedApi, java.lang.Class<T> responseClass)
- Type Parameters:
T- The type of the response.- Parameters:
wrappedApi- TheWrappedApito use.responseClass- TheClassof the response.- Returns:
- The created
ApiRequestBuilder.
-
withUrl
public ApiRequestBuilder<T> withUrl(@NonNull @NonNull java.lang.String url)
Sets the url of the request. This will override the default url of theWrappedApi.- Parameters:
url- The url to set. Should not contain a trailing slash.- Returns:
- The
ApiRequestBuilderinstance.
-
withEndpoint
public ApiRequestBuilder<T> withEndpoint(@NonNull @NonNull java.lang.String endpoint)
Sets the endpoint of the request.- Parameters:
endpoint- The endpoint to set. Should contain a leading slash.- Returns:
- The
ApiRequestBuilderinstance.
-
withRequestMethod
public ApiRequestBuilder<T> withRequestMethod(@NonNull @NonNull RequestMethod requestMethod)
Sets the request method of the request.
Pro-tip: You can use pre-defined instances ofRequestMethodlikeRequestMethod.GET.- Parameters:
requestMethod- The request method to set.- Returns:
- The
ApiRequestBuilderinstance.
-
withRequestMethod
public ApiRequestBuilder<T> withRequestMethod(@NonNull @NonNull java.lang.String requestMethod)
-
withPathParameter
public ApiRequestBuilder<T> withPathParameter(@NonNull @NonNull PathParameter pathParameter)
Adds aPathParameterto the request.- Parameters:
pathParameter- ThePathParameterto add.- Returns:
- The
ApiRequestBuilderinstance.
-
withPathParameters
public ApiRequestBuilder<T> withPathParameters(@NonNull @NonNull PathParameter pathParameter, PathParameter... pathParameters)
Adds multiplePathParameters to the request.- Parameters:
pathParameter- The firstPathParameterto add.pathParameters- The otherPathParameters to add.- Returns:
- The
ApiRequestBuilderinstance.
-
withRequestQuery
public ApiRequestBuilder<T> withRequestQuery(@NonNull @NonNull RequestQuery requestQuery)
Adds aRequestQueryto the request.- Parameters:
requestQuery- TheRequestQueryto add.- Returns:
- The
ApiRequestBuilderinstance.
-
withRequestQueries
public ApiRequestBuilder<T> withRequestQueries(@NonNull @NonNull RequestQuery requestQuery, RequestQuery... requestQueries)
Adds multipleRequestQuerys to the request.- Parameters:
requestQuery- The firstRequestQueryto add.requestQueries- The otherRequestQuerys to add.- Returns:
- The
ApiRequestBuilderinstance.
-
withRequestHeader
public ApiRequestBuilder<T> withRequestHeader(@NonNull @NonNull RequestHeader requestHeader)
Adds aRequestHeaderto the request.- Parameters:
requestHeader- TheRequestHeaderto add.- Returns:
- The
ApiRequestBuilderinstance.
-
withRequestHeaders
public ApiRequestBuilder<T> withRequestHeaders(@NonNull @NonNull RequestHeader requestHeader, RequestHeader... requestHeaders)
Adds multipleRequestHeaders to the request.- Parameters:
requestHeader- The firstRequestHeaderto add.requestHeaders- The otherRequestHeaders to add.- Returns:
- The
ApiRequestBuilderinstance.
-
withBodyPublisher
public ApiRequestBuilder<T> withBodyPublisher(@NonNull java.net.http.HttpRequest.BodyPublisher bodyPublisher)
Sets theHttpRequest.BodyPublisherof the request.- Parameters:
bodyPublisher- TheHttpRequest.BodyPublisherto set.- Returns:
- The
ApiRequestBuilderinstance.
-
withBodyHandler
public ApiRequestBuilder<T> withBodyHandler(@NonNull java.net.http.HttpResponse.BodyHandler<?> bodyHandler)
Sets theHttpResponse.BodyHandlerof the request.- Parameters:
bodyHandler- TheHttpResponse.BodyHandlerto set.- Returns:
- The
ApiRequestBuilderinstance.
-
build
public ApiRequest<T> build()
Builds theApiRequest.- Returns:
- The built
ApiRequest.
-
-