Мы выпустили RESTinio 0.6.6!
2020.04.14
В этой версии добавлен экспериментальный и безопасный по типам роутер запросов, который может использоваться вместо express-роутера.
Этот новый easy_parser_router позволяет описывать маршруты вот в таком виде:
namespace epr = restinio::router::easy_parser_router; router->http_get( epr::path_to_params("/api/v1/posts/", epr::non_negative_decimal_number_p<std::uint64_t>(), "/revisions/", epr::non_negative_decimal_number_p<std::int16_t>()), [](const auto & req, std::uint64_t post_id, std::int16_t rev_id) {...});
Этот же маршрут для express-роутера записывался бы вот в таком виде:
router->http_get("/api/v1/posts/:post_id(\d{1,10})/revisions/:rev_id(\d{1,5})", [](const auto & req, const auto & params) { const auto post_id = restinio::cast_to<std::uint64_t>(params["post_id"]); const auto rev_id = restinio::cast_to<std::int16_t>(params["rev_id"]); ... });
Новый easy_parser_router позволяет полагаться на проверки времени компиляции, что препятствует возникновению ошибок, которым подвержен express-роутер.
Добавлена возможность задать один обработчик сразу для нескольких HTTP-методов при обращении к одному ресурсу:
router->add_handler( restinio::router::any_of_methods( restinio::http_method_lock(), restinio::http_method_unlock()), "/api/v1/resources/:rid", [](const auto & req, const auto & params) {...}); router->add_handler( restinio::router::none_of_methods( restinio::http_method_get(), restinio::http_method_post(), restinio::http_method_delete()), "/api/v1/users/:user", [](const auto & req, const auto & params) {...});
Эти новые method-matcher-ы могут использоваться как с express-, так и с easy_parser роутерами.
Добавлена новая опция для CMake с именем RESTINIO_FMT_HEADER_ONLY. С ее помощью можно указывать, должна ли fmtlib использоваться в виде header-only или же скомпилированной библиотеки.
Новая версия RESTinio доступна в основном репозитории на github, а так же через системы управления зависимостями vcpkg и conan.
Документация находится здесь.
Также доступна Doxygen документация: RESTinio-0.6 API Reference.
Если вам чего-то не хватает в RESTinio и вы хотели бы увидеть в RESTinio нужную вам функциональность, то можете сообщить нам об этом через Issues на github или Google-группу, либо же написав на info@stiffstream.com. Вы так же можете заказать у нас доработку RESTinio под свои нужды.