新功能:将参数化 URL 组件添加为请求参数
作者: ClaudeTO80创建于 2024年3月19日更新于 2024年3月19日
大家好。我试图根据可能性创建一个通用的路由规则定义方法。到目前为止,可以通过这种方式定义和处理 URL 的参数元素,效果很好。例如,_CROW_ROUTE(app, "/v2/hello/<int>").methods("GET"method)([&](const crow::request& req, int count) {...});
我的要求是,是否可以通过另一种方式来处理 URL 的参数元素。这种方法不需要将调用 lambda 与 URL 参数进行匹配,而是将这些参数作为键/值字符串存储在请求中。一个可能的示例是:CROW_ROUTE(app, "/v2/hello/<int>").url_params_names("firstParamName").methods("GET"method)([&](const crow::request& req) { ... std::string count = req.getUrlParam("firstParamName"); //getUrlParam 或任何其他方法名称 ... });_
这种方法可以与 route_dynamic 方法结合使用,后者需要在运行时而不是编译时确定的参数字符串。通过这种方式,路由信息可以完全来自配置文件(例如 XML),并且运行时从共享库中加载运行时函数。当然,开发人员需要正确处理路由规则和函数调用的每个细节。因此,可以将运行中的应用程序与路由定义分离。只通过配置(例如 XML)动态添加和删除路由,并保持调用函数的共享库持续更新。我计划使用 POCO C++ 库来处理共享库和加载它们的符号。
内容来源: ipkn/crow