Мы выпустили 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.