make_http_request


Description:

public StatusResponse make_http_request (void* command_cookie = null, HttpType type, ref HttpCommand command, ref HttpRequest request)

Execute HTTP request matching given path and yield JSON result object. Depending on type it could be:

- HttpType.VIEW

The client should setup view_complete callback in order to fetch

the result. Also he can setup view_data callback to fetch response

body in chunks as soon as possible, it will be called each time the

library receive a data chunk from socket. The empty <tt>bytes</tt>

argument (NULL pointer and zero size) is the sign of end of

response. Chunked callback allows to save memory on large datasets.

- HttpType.MANAGEMENT

Management requests allow you to configure the cluster, add/remove

buckets, rebalance etc. The result will be passed to management

callbacks (data/complete).

Example: Fetch first 10 docs from '_design/test/_view/all' view

	HttpRequest req = HttpRequest();
HttpCommand cmd = HttpCommand() {
path = "_design/test/_view/all?limit=10",
body = null,
method = HttpMethod.GET,
chunked = 1,
content_type = "application/json"
};
StatusResponse response = instance.make_http_request(
null, HttpType.VIEW, &cmd, &req
);
Example: The same as above but with POST filter
	HttpRequest req = HttpRequest();
HttpCommand cmd = HttpCommand() {
path = "_design/test/_view/all?limit=10".data,
body = """{"keys": ["test_1000", "test_10002"]}""".data,
method = HttpMethod.POST,
chunked = 0,
content_type = "application/json"
};
StatusResponse response = instance.make_http_request(
null, HttpType.VIEW, ref cmd, ref req
);

Example: Delete bucket via REST management API

	HttpRequest req = HttpRequest();
HttpCommand cmd = HttpCommand() {
path = query.data,
body = null,
method = HttpMethod.DELETE,
chunked = 0,
content_type = "application/x-www-form-urlencoded"
};
StatusResponse response = instance.make_http_request(
null, HttpType.MANAGEMENT, ref cmd, ref req
);

Parameters:

command_cookie

A cookie passed to all of the notifications from this command

type

The type of the request needed.

command

The struct describing the command options

request

Where to store request handle




2022 vala-language.org