web开发(C++也能快速开发web项目了)
在介绍这个项目之前,让我们先看一张照片。这场演出绝对是第一场。drogon是一个基于c++14/17的HTTP应用程序框架。Drogon可以轻松地使用C++构建各种类型的web应用服务器程序。Drogon是一个跨平台框架,支持Linux、Mac OS、FreeBSD、OpenBSD、Haikoos和windows
主要功能
简单示例
与大多数C++框架不同,dragon的主程序可以保持非常简单。Drogon使用一些技巧将主程序与控制器解耦。控制器的路由设置可以在控制器类或配置文件中定义。
这里是一个典型的主程序:
如果使用配置文件,它可以进一步简化如下:
当然,drogon还提供了一些接口,用户可以直接在main()函数中添加控制器逻辑。例如,用户可以在drogon框架中注册一个lambda处理器,如下所示:
这似乎非常方便,但不适合复杂的应用程序,想象一下,如果要在框架中注册几十个或数百个处理函数,main()函数将扩展到无法读取的级别。显然,让每个包含处理程序的类在自己的定义中注册是更好的选择。因此,除非您的应用程序逻辑非常简单,否则我们不建议使用上述接口。更好的做法是,我们可以创建一个HttpSimpleControl对象,如下所示:
上述程序的大部分代码都可以通过drogon_uCtl命令生成(这个命令是dragon_Ctlcreate controller testctr)。用户需要做的就是添加自己的业务逻辑。在本例中,当客户端访问URL时http://ip/test控制器简单地返回一个Hello,world!页面
对于JSON格式的响应,我们可以如下创建一个控制器:
让我们更进一步,通过HttpController类创建一个restful API示例,如下所示(忽略实现文件):
如您所见,通过HttpController类,用户可以同时映射路径和路径参数,这对于restful API应用程序来说非常方便
此外,您可以发现之前的所有处理函数接口都是异步的,处理器的响应是通过回调对象返回的。这种设计是为了高性能,因为在异步模式下,可以使用少量线程(例如具有相同数量处理器内核的线程)来处理大量并发请求
编译完上述所有源文件后,我们得到了一个非常简单的web应用程序,这是一个良好的开端
项目地址
GitHub:https://github.com/drogonframework/drogon
Gitee:https://gitee.com/an-tao/drogon