Package io.confluent.ksql.api.client
Interface Client.HttpRequest
- Enclosing interface:
Client
public static interface Client.HttpRequest
Instances of
Client.HttpRequest
are used to make direct HTTP requests
to ksqlDB server's REST API.-
Method Summary
Modifier and TypeMethodDescriptionmethod()
path()
payload()
Add a key and value in the payload map.Add all entries from the input map into the payload map.properties
(Map<String, Object> properties) Add all properties from the given map.propertiesKey
(String propertiesKey) Set the key to be used for properties map in the request.Set a property.send()
Complete the HTTP request.
-
Method Details
-
payload
Add a key and value in the payload map. If an entry already exists with this key, it is replaced.- Parameters:
key
- a String keyvalue
- the value- Returns:
- this instance of
Client.HttpRequest
-
payload
Add all entries from the input map into the payload map. If any of the entries already exist, it is replaced with the new one.- Parameters:
payload
- a non-null input map- Returns:
- this instance of
Client.HttpRequest
-
payload
- Returns:
- a non-null payload map constructed so far for this request.
-
property
Set a property. If an entry already exists with this key, it is replaced.- Parameters:
key
- a String keyvalue
- the value- Returns:
- this instance of
Client.HttpRequest
-
properties
- Returns:
- a non-null properties map constructed so far for this request.
-
properties
Add all properties from the given map. If an entry already exists with this key, it is replaced.- Parameters:
properties
- a non-null input map- Returns:
- this instance of
Client.HttpRequest
-
propertiesKey
Set the key to be used for properties map in the request. If not set, all properties are keyed to a "properties" when sent in the request body. This is useful as certain endpoints (for example, the /ksql endpoint) in ksqlDB's API look for properties in a top-level "streamProperties" object, whereas others look for this in this top-level "properties" object. -
propertiesKey
String propertiesKey()- Returns:
- the key the properties are associated with in the final request payload.
-
path
String path()- Returns:
- the URL path for this request.
-
method
String method()- Returns:
- the HTTP method this request will execute.
-
send
CompletableFuture<Client.HttpResponse> send()Complete the HTTP request. This method combines the payload key-value pairs, properties and session variables (set withClient.define(String, Object)
above) into a json payload that is sent to the server in the request body. For example, invoking the API as follows:client.define("s1", "v1"); client.request("POST", "/some/path") .payload("k1", "v1"). .payload(singletonMap("k2", "v2")) .property("p1", "v1") .properties(singletonMap("p2", "v2")) .propertiesKey("streamProperties") .send().get();
will create the following request body:
{ "k1": "v1", "streamProperties": { "p1": "v1", "p2": "v2" }, sessionVariables: { "s1": "v1" } }
- Returns:
- a future that completes once the server response is received and parsed into
an
Client.HttpResponse
or with an exception if the request failed to complete.
-