Class RestBuilder
java.lang.Object
com.couchbase.client.java.cluster.api.RestBuilder
- All Implemented Interfaces:
RestBuilderMarker
@Public @Experimental public class RestBuilder extends Object implements RestBuilderMarker
A builder class to incrementally construct REST API requests and execute
them synchronously
- Since:
- 2.3.2
- Author:
- Simon Baslé
-
Constructor Summary
Constructors Constructor Description RestBuilder(AsyncRestBuilder asyncBuilder, long defaultTimeout, TimeUnit defaultTimeUnit)
-
Method Summary
Modifier and Type Method Description RestBuilder
accept(String type)
Sets the "Accept" standard header's value.RestApiRequest
asRequest()
String
body()
RestBuilder
body(JsonValue jsonBody)
Sets the body for the request, assuming it is JSON.RestBuilder
body(String jsonBody)
Sets the body for the request, assuming it is JSON.RestBuilder
bodyForm(Form form)
Sets the body for the request to be an url-encoded form.RestBuilder
bodyRaw(String body)
Sets the body for the request without assuming a Content-Type or Accept header.RestBuilder
contentType(String type)
Sets the "Content-Type" standard header's value.RestApiResponse
execute()
Executes the API request in a synchronous fashion, using the default timeout.RestApiResponse
execute(long timeout, TimeUnit timeUnit)
Executes the API request in a synchronous fashion, using the given timeout.Map<String,Object>
headers()
com.couchbase.client.deps.io.netty.handler.codec.http.HttpMethod
method()
Map<String,String>
params()
String
path()
RestBuilder
withHeader(String key, Object value)
Adds an HTTP header to the request.RestBuilder
withParam(String key, String value)
Adds an URL query parameter to the request.
-
Constructor Details
-
RestBuilder
- Parameters:
asyncBuilder
-defaultTimeout
-defaultTimeUnit
-
-
-
Method Details
-
withParam
Adds an URL query parameter to the request. Using a key twice will result in the last call being taken into account.- Parameters:
key
- the parameter key.value
- the parameter value.
-
contentType
Sets the "Content-Type" standard header's value. This is a convenience method equivalent to callingwithHeader("Content-Type", type)
.- Parameters:
type
- the "Content-Type" to use.
-
withHeader
Adds an HTTP header to the request. Using a key twice will result in the last value being used for a given header.- Parameters:
key
- the header name (see HttpHeaders.Names for standard names).value
- the header value (see HttpHeaders.Values for standard values).
-
body
Sets the body for the request, assuming it is JSON. This is equivalent to setting the"Content-Type"
to"application/json"
and then setting the body viabodyRaw(String)
. Note that you should avoid calling this for HTTP methods where it makes no sense (eg. GET, DELETE), as it won't be ignored for these types of requests.- Parameters:
jsonBody
- the JSON body to use, as a String.
-
body
Sets the body for the request, assuming it is JSON. This is equivalent to setting the"Content-Type"
to"application/json"
and then setting the body viabodyRaw(String)
. Note that you should avoid calling this for HTTP methods where it makes no sense (eg. GET, DELETE), as it won't be ignored for these types of requests.- Parameters:
jsonBody
- the JSON body to use, as aJsonObject
.
-
bodyRaw
Sets the body for the request without assuming a Content-Type or Accept header. Note that you should avoid calling this for HTTP methods where it makes no sense (eg. GET, DELETE), as it won't be ignored for these types of requests.- Parameters:
body
- the raw body value to use, as a String.
-
accept
Sets the "Accept" standard header's value. This is a convenience method equivalent to callingwithHeader("Accept", type)
.- Parameters:
type
- the "Accept" type to use.
-
bodyForm
Sets the body for the request to be an url-encoded form. This is equivalent to setting the"Content-Type"
to"application/x-www-form-urlencoded"
and then setting the body viabodyRaw(String)
.- Parameters:
form
- theForm
builder object used to set form parameters.
-
method
public com.couchbase.client.deps.io.netty.handler.codec.http.HttpMethod method()- Returns:
- the
HttpMethod
used for this request.
-
path
- Returns:
- the full HTTP path (minus query parameters) used for this request.
-
params
- Returns:
- a copy of the query parameters used for this request.
-
headers
- Returns:
- a copy of the HTTP headers used for this request.
-
body
- Returns:
- the body used for this request.
-
asRequest
- Returns:
- the
RestApiRequest
message sent through theClusterFacade
when executing this request.
-
execute
Executes the API request in a synchronous fashion, using the given timeout.- Parameters:
timeout
- the custom timeout to use for the request.timeUnit
- theTimeUnit
for the timeout.- Returns:
- the result of the API call, as a
RestApiResponse
. - Throws:
RuntimeException
- wrapping aTimeoutException
in case the request took too long.
-
execute
Executes the API request in a synchronous fashion, using the default timeout. The default timeout is currently the same as theview timeout
.- Returns:
- the result of the API call, as a
RestApiResponse
. - Throws:
RuntimeException
- wrapping aTimeoutException
in case the request took too long.
-