RestRequest
RestRequest copied to clipboard
JUCE module for making HTTP requests to REST API's
RestRequest
JUCE module for making HTTP requests to REST API's
Example Usage
First declare your class instance e.g. as a member variable:
adamski::RestRequest request;
Then in your constructor add any headers you will need across different requests e.g.:
request.header ("Content-Type", "application/json");
request.header ("Authorization", "Basic " + Base64::toBase64 ("username:password"));
Example GET request:
adamski::RestRequest::Response response = request.get ("registry/_design/module-views/_view/all-modules")
.execute();
// Example response debugging
DBG (response.bodyAsString);
DBG (response.result.getErrorMessage());
for (auto key : response.headers.getAllKeys())
{
DBG (key << ": " << response.headers.getValue(key, "n/a"));
}
Example POST request:
adamski::RestRequest::Response response = request.post ("registry/_find")
.field ("selector", searchString)
.execute();
Example PUT request with chained field methods:
adamski::RestRequest::Response response = request.put ("_users/" + id)
.field ("type", "user")
.field ("name", username)
.field ("email", email)
.field ("roles", Array<var>({var("publisher")}))
.field ("password_sha", stringToSHA1 (password + salt))
.field ("salt", salt)
.execute();
If you need to encode or decode strings with SHA1 I made a JUCE module out of an open source library called smallsha1: https://github.com/adamski/smallsha1