RESTinio обновился до версии 0.4.4.
Что изменилось:
Добавлена концепция преобразователя данных, которая реализована для компрессии/декомпрессии данных с помощью библиотеки zlib. Подробнее смотри: Compression (defalate, gzip).
router->http_get(R"(/port/:id/latest)",
[](auto req, auto params) {
auto resp = req->create_response();
resp.append_header_date_field()
.append_header(restinio::http_field::content_type, "application/json");
restinio::transforms::zlib::gzip_body_appender(resp)
.append(load_port_data(params["id"]))
.complete();
return resp.done();
});
router->http_post(R"(/port/:id/data)",
[](auto req, auto params) {
return restinio::transforms::zlib::handle_body(*req, [&](auto uncompressed_body) {
store_port_data(params["id"], upcompressed_body);
return req->create_response()
...
.done();
});
});
Добавлена функция value_or(), с помощью которой можно получить значение параметра из key-value контейнера RESTinio с подстановкой значения по-умолчанию. Подробне смотри:
Get values from RESTinio key-value containers.
Ранее приходилось писать так:
const auto count = qp.has( "count" ) ? restinio::cast_to<unsigned>( qp[ "count" ] ) : 100u;
Сейчас можно писать так:
const auto count = restinio::value_or(qp, "count", 100u ) );
Переход на библиотеку
https://github.com/martinmoene/string-view-lite для string_view (которая использует string_view из STL если это возможно).
Добавлена сторонняя библиотека
https://github.com/martinmoene/optional-lite для optional (которая использует optional из STL если это возможно).
Библиотека по-прежнему живет на bitbucket-е (
https://bitbucket.org/sobjectizerteam/restinio-0.4) c зеркалом на github-е (
https://github.com/Stiffstream/restinio), документация доступна у нас на сайте (
https://stiffstream.com/en/docs/restinio/0.4/). Распространяется под BSD-3-CLAUSE лицензией.