说到web开发,大多数人会想到Java、Python、Golang...因为主流的web框架有很多,而Java有一个非常有名的Spring全家桶,Python有大而全的Django,小而精的Flask,还有高性能的Tornado。Golang还有快速灵活的Gin、Echo等框架。相比之下,C/C++阵营就逊色很多。之前写过一篇文章《C++ Web(HTTP)开发 10 大利器》介绍一些C/C++的web框架。有一个非常好的叫Oat++,轻量级、跨平台、高性能、完全零依赖。非常值得学习!1Oat++简介要深入理解Oat++,离不开这些网址:Oat++主页:https://oatpp.ioOat++文档:https://oatpp.io/docs/startGitHub地址:https://github.com/oatpp/oatpp的主要特点是:无需任何依赖即可在任何地方运行Oat++,并且可以轻松移植到各种支持的平台(Linux、MacOS、Windows)。使用Oat++Simple-API构建健壮的API,构建灵活而健壮的API既简单又有趣。处理500万个连接使用Oat++Async-API,可以在单个服务器上处理超过500万个并发连接。访问数据库Oat++ORM提供了一种简单且统一的方式来访问数据库保持代码一致Oat++依赖整个代码库中的对象映射来确保API和数据模型的一致性API文档是使用Swagger-UI和OpenAPI3.0.0自动生成的最吸引我的地方记录端点是HTTP/HTTPS、文件上传/下载和强大的SwaggerAPI功能。2编译Oat++进入Oat++的GitHub页面,你会发现最近几天有多达4K+Star,30多个贡献者,代码提交,所以不用担心人气和活跃度,这个框架一直在积极维护。环境要求Oat++的编译过程非常简单,只需要一个基本的开发环境:Git编译器支持的C++版本>=11MakeCMake版本>=3.1如果没有,按照下面的步骤安装,以Ubuntu为例:$sudoaptinstallgit$sudoaptinstallcmake$sudoaptinstallbuild-essential编译安装下载Oat++源码:$gitclonehttps://github.com/oatpp/oatpp.git然后执行编译安装四步:$cdoatpp/$mkdirbuild&&cdbuild$cmake。.$sudomake&&sudomakeinstall3示例程序为了演示Oat++,我们从最简单的“Hello,World!”开始!创建CMake工程,CMakeLists.txt配置如下:cmake_minimum_required(VERSION3.1)project(helloworld)set(CMAKE_CXX_STANDARD11)set(SOURCE_FILESmain.cpphandler.h)#Findoatppdependenciesfind_package(oatppREQUIRED)add_executable(${PROJECT_NAME}LE${SOURCE_FI})#将目标文件与库文件链接target_link_libraries(${PROJECT_NAME}oatpp::oatpp)默认情况下,Oat++将响应404响应客户端请求,不做任何其他操作。要添加自定义响应,必须实现HttpRequestHandler://handler.h#ifndefHANDLER_H#defineHANDLER_H#include"oatpp/web/server/HttpRequestHandler.hpp"#defineO_UNUSED(x)(void)x;//自定义请求处理程序classHandler:publiccoatpp::web::server::HttpRequestHandler{public://处理传入请求和返回响应std::shared_ptr
