说起Web开发,大多数人都会想到Java、Python、Golang.因为主流的Web框架很多,Java有非常知名的Spring家族桶,Python有大而全的Django,有小巧精致的mask,有高性能的Tornado,Golang也有快速灵活的Gin、Echo等框架。
相比之下,C /C阵营就逊色了。之前写过一篇文章《C++ Web(HTTP)开发 10 大利器》,介绍了一些C/C Web框架。有一个非常好的叫Oat,轻量级,跨平台,高性能,完全零依赖,值得学习!
燕麦介绍
要深入了解Oat,离不开这些网站:
Oat主页:https://oatpp.io
燕麦文件:https://oatpp.io/docs/start
GitHub地址:https://github.com/oatpp/oatpp
其主要特点是:
到处跑
Oat没有依赖性,可以轻松移植到各种支持的平台(Linux、MacOS、Windows)。
构建强大的api
使用Oat Simple-API,构建灵活、健壮的API既简单又有趣。
处理500万个连接
使用燕麦异步应用编程接口,一台服务器上可以处理超过500万个并发连接。
访问数据库
Oatrom提供了一种简单统一的方式来访问数据库。
保持代码一致性
Oat依靠整个代码库中的对象映射来保证API和数据模型的一致性。
生成应用编程接口文档
使用斯瓦格-UI和OpenAPI 3.0.0自动记录端点。
最吸引我的是HTTP/HTTPS,文件上传/下载,强大的Swagger API功能。
2
编译燕麦
进入Oat的GitHub页面,你会发现4K之星一样多,贡献者也有30多个,最近几天还是有代码提交,所以不用担心人气和活跃度,这个框架一直在积极维护。
环境要求
Oat的编译过程非常简单,只需要一个基本的开发环境:
饭桶
编译器支持的c版本=11
制造
CMake版本=3.1
如果没有,以Ubuntu为例,按照以下步骤安装:
$sudoaptinstallgit
$ sudoaptinstallcmake
$ sudoapinstallbuild-必不可少
编译并安装
下载燕麦源代码:
$ git clone https://github.com/oatpp/oatpp . git
然后,执行编译和安装四部曲:
$cdoatpp/
$mkdirbuildcdbuild
$cmake.
$sudomakesudomakeinstall
三
抽样程序
为了演示Oat,让我们从最简单的“你好,世界!”走吧。
创建一个CMake项目。CMakeLists.txt的配置如下:
cmake _ minimum _ required(3.1版)
项目(helloworld)
set(CMAKE_CXX_STANDARD11)
set(SOURce _ FileMain . cpphandler . h)
#查找oatpp依赖项
find _ package(oatprequired)
add _ executive($ { PROJECt _ NAME } $ { SOURce _ FILES })
#将目标文件与库文件链接
target _ link _ libraries($ { PROJECt _ NAME } oatp : oatp)
默认情况下,Oat将响应404客户端请求,不做其他事情。
要添加自定义响应,您必须实现HttpRequestHandler:
请求验证
运行程序并在浏览器中访问http://localhost:8000/hello,以及“hello,World!”将显示。信息:
或者使用curl请求http://127.0.0.1:8000/hello,效果相同:
copy $ curl http://127 . 0 . 0 . 1:8000/hello
你好,世界!