Мы выпустили RESTinio 0.4.4!
2018.04.05
Рады представить очередное обновление нашей библиотеки для встраивания HTTP/Websocket сервера в C++ приложения: 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 с подстановкой значения по-умолчанию.
Ранее нужно было делать так:
const auto count = qp.has("count") ? restinio::cast_to<unsigned>(qp["count"]) : 100u;
Стало возможно делать так:const auto count = restinio::value_or(qp, "count", 100u);
Подробнее: Get values from RESTinio key-value containers - Переход на библиотеку https://github.com/martinmoene/string-view-lite для string_view (которая использует string_view из STL если это возможно).
- Добавлена сторонняя библиотека https://github.com/martinmoene/optional-lite для optional (которая использует optional из STL если это возможно).
Основной репозиторий RESTinio находится на bitbucket (есть github зеркало).
Архивы зафиксированных версий находятся в download section.
Документация находится здесь.
Если вам чего-то не хватает в RESTinio и вы хотели бы увидеть в RESTinio нужную вам функциональность, то можете написать нам об этом на info@stiffstream.com.