query #
Base method used to send queries to Kuzzle, following the API Documentation.
This is a low-level method, exposed to allow advanced SDK users to bypass high-level methods.
Signature #
kuzzleio::kuzzle_response* query(const kuzzleio::kuzzle_request& request);
kuzzleio::kuzzle_response* query(
const kuzzleio::kuzzle_request& request,
const kuzzleio::query_options& options);
Arguments #
Argument | Type | Description |
---|---|---|
request | kuzzle_request* | API request parameters |
options | kuzzleio::query_options* | Query options |
request #
Properties required for the Kuzzle API can be set in the kuzzle_request
struct. The following properties are the most common.
Property | Type | Description | Required |
---|---|---|---|
controller | const char* | Controller name | yes |
action | const char* | Action name | yes |
body | const char* | JSON string representing body for this action | no |
index | const char* | Index name for this action | no |
collection | const char* | Collection name for this action | no |
id | const char* | ID for this action | no |
volatiles | const char* | JSON string representing additional information to send to Kuzzle | no |
options #
Additional query options
Option | Type (default) | Description |
---|---|---|
queuable | bool ( true ) | If true, queues the request during downtime, until connected to Kuzzle again |
Return #
A kuzzle_response
containing the Kuzzle API response. See the API Documentation. The following properties are the most common.
Property | Type | Description |
---|---|---|
request_id | char* | Request unique ID |
result | char* | JSON string representing Kuzzle API result |
error | char* | Error message |
status | int | Request status (eg: 200, 403, etc.) |
Exceptions #
Throws a kuzzleio::KuzzleException
if there is an error. See how to handle error.
Usage #
try {
kuzzleio::kuzzle_request request = {0};
request.controller = "document";
request.action = "create";
request.index = "nyc-open-data";
request.collection = "yellow-taxi";
request.id = "my-custom-document-id";
request.body = "{\"trip_distance\": 4.23, \"passenger_count\": 2}";
kuzzleio::query_options options;
options.refresh = "wait_for";
kuzzleio::kuzzle_response* response = kuzzle->query(request, options);
if (response->status == 200) {
std::cout << "Document created" << std::endl;
}
}
catch (kuzzleio::UnauthorizedException& e) {
std::cerr << "You are not connected" << std::endl;
}
catch (kuzzleio::KuzzleException& e) {
std::cerr << e.what() << std::endl;
}