使用Boost.URL实现http路由
使用Boost.Beast实现http服务器时,一直没有一个好的方式解决路由的问题。Boost.URL的发布给了一个比较好的实现方案。
最开始是直接使用硬编码来实现的:
void handleRequest(const boost::beast::http::request<boost::beast::http::string_body> &request) {
if(request.target()=="/public") {
// do something
} else if(request.target()=="/login") {
// do something
} else if(request.target()=="/about") {
// do something
}
}
这是最简单粗暴的方式,当然缺点有很多。扩展性差,不易于维护,会出现代码文件爆炸的情况。