术致科技

您现在的位置是:首页 > 建站 > 正文

建站

web开发(C++也能快速开发web项目了)

术致建站2023-01-30建站204
在介绍项目之前先来看一张图,性能绝对第一,吊打java、go、php、c#等一众语言框架。项目简介Drogon是一个基于C++14/17的Http应用框架,使用Drogon可以方便的使用C++构建各种

在介绍这个项目之前,让我们先看一张照片。这场演出绝对是第一场。drogon是一个基于c++14/17的HTTP应用程序框架。Drogon可以轻松地使用C++构建各种类型的web应用服务器程序。Drogon是一个跨平台框架,支持Linux、Mac OS、FreeBSD、OpenBSD、Haikoos和windows

web开发(C++也能快速开发web项目了)

主要功能

简单示例

与大多数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