Implemented parallel downloads through CURL multi interface and added purge command

- Update `README.md` file with examples
- Fixed error messages showing no or wrong message
- Changed the prompt message when installing, removing, etc.
- Changed how http::request works
- Added `http::multi` class for parallel downloads
- Removed separate `concepts.hpp` file
TODO: Fix ZIP not extracting after running the `install` command
This commit is contained in:
David Allen 2023-07-10 20:26:15 -06:00
parent 766eabd5b2
commit 807aa8e5b2
21 changed files with 1158 additions and 758 deletions

View file

@ -1,26 +1,15 @@
# GDPM Rest API Example
# GDPM HTTP Example
This is an example showing how to use the REST API designed to query the Godot Asset library in C++. It is built using the `libcurl` library.
This is an example showing how to use the GDPM HTTP library to download files. The library uses RapidJSON to get results.
Here is a snippet making a HTTP get and post request.
Here is a quick snippet to get started:
```c++
using string = std::string;
using headers_t = std::unordered_map<string, string>;
std::string url = "www.example.com";
http::response r_get = http::request_get(url)
if(r_get.response_code == http::response_code::OK){
// ...do something...
}
http::request_params params;
params.headers = {
{"user-agent", "firefox"},
{"content-type", "application/json"}
}
http::response r_post = http::request_post(url, params);
if(r_post.response_code == http::response_code::OK){
// ...do something...
}
// Get a full list of assets
rest_api::context context = rest_api::make_context();
rapidjson::Document doc = http::get_asset_list(
"https://godotengine.org/asset-library/api",
context
)
// ... parse the rapidjson::Document
```