0


【C++】开源:oatpp-web框架入门

说到web开发,大家肯定会想到JS、Python,甚至Java,但应该不会想到C++。

用C++开发web也不是不行,这不,oatpp就是一个轻量、跨平台、高性能的web框架。

crow也是一个c++ web框架,类似于Python的Flask,参考安装入门如下:

http://t.csdn.cn/eI3zD

文章目录

1. oatpp介绍

官网:

https://oatpp.io/

文档:

https://oatpp.io/docs/start

github地址:

https://github.com/oatpp/oatpp

oatpp可在Linux和Windows上通用,无需其他依赖。

在这里插入图片描述

2. 环境搭建

编译安装:

下载源码:
git clone https://github.com/oatpp/oatpp.git

编译:
cd oatpp
mkdir build &&cd build
cmake ..sudomake&&sudomakeinstall

在这里插入图片描述

3. 示例程序

运行一个基于oatpp框架的示例程序(响应hello world):

创建oatpp_demo目录,并创建

CMakeLists.txt

cmake_minimum_required(VERSION 3.1)project(helloworld)set(CMAKE_CXX_STANDARD 11)set(SOURCE_FILES main.cpp handler.h)
 
# 查找 oatpp 依赖
find_package(oatpp REQUIRED)add_executable(${PROJECT_NAME} ${SOURCE_FILES})
 
# 将目标文件与库文件进行链接
target_link_libraries(${PROJECT_NAME} oatpp::oatpp)

头文件

handler.h

,实现响应HttpRequestHandler:

// handler.h#ifndefHANDLER_H#defineHANDLER_H#include"oatpp/web/server/HttpRequestHandler.hpp"#defineO_UNUSED(x)(void)x;// 自定义请求处理程序classHandler:public oatpp::web::server::HttpRequestHandler{public:// 处理传入的请求,并返回响应
    std::shared_ptr<OutgoingResponse>handle(const std::shared_ptr<IncomingRequest>& request)override{O_UNUSED(request);returnResponseFactory::createResponse(Status::CODE_200,"Hello, World! This is oatpp_demo!");}};#endif// HANDLER_H

主程序main.cpp,提供路由Router请求:

// main.cpp#include"oatpp/web/server/HttpConnectionHandler.hpp"#include"oatpp/network/tcp/server/ConnectionProvider.hpp"#include"oatpp/network/Server.hpp"#include"handler.h"voidrun(){// 为 HTTP 请求创建路由器auto router = oatpp::web::server::HttpRouter::createShared();// 路由 GET - "/hello" 请求到处理程序
    router->route("GET","/hello", std::make_shared<Handler>());// 创建 HTTP 连接处理程序auto connectionHandler = oatpp::web::server::HttpConnectionHandler::createShared(router);// 创建 TCP 连接提供者auto connectionProvider = oatpp::network::tcp::server::ConnectionProvider::createShared({"localhost",8080, oatpp::network::Address::IP_4});// 创建服务器,它接受提供的 TCP 连接并将其传递给 HTTP 连接处理程序
    oatpp::network::Server server(connectionProvider, connectionHandler);// 打印服务器端口OATPP_LOGI("MyApp","Server running on port %s", connectionProvider->getProperty("port").getData());// 运行服务器
    server.run();}intmain(){// 初始化 oatpp 环境
    oatpp::base::Environment::init();// 运行应用run();// 销毁 oatpp 环境
    oatpp::base::Environment::destroy();return0;}

cmake工程编译:

mkdir build &&cd build
cmake ..make

然后在浏览器打开:

http://127.0.0.1:8080/hello

在这里插入图片描述

以上。

标签: c++ 前端 git

本文转载自: https://blog.csdn.net/qq_40344790/article/details/129842575
版权归原作者 DevFrank 所有, 如有侵权,请联系我们删除。

“【C++】开源:oatpp-web框架入门”的评论:

还没有评论