Pistache(C++ REST工具)安装配置 ubuntu16.04 + cmake

< from github home page> /// A high-performance REST Toolkit written in C++ ///
我要的就是这个~

更详细的介绍:

Pistache is a C++ REST framework written by Mathieu Stefani at Datacratic. It is written in pure C++11 with no external dependency and provides a low-level HTTP abstraction.
Pistache provides both an HTTP client and server that can be used to create and query complex web and REST APIs.

相关资料
github
homepage / document

安装

clone

git clone git@github.com:oktal/pistache.git

make

cd pistache
mkdir build
cd build
cmake ..
make

install

sudo make install

cmake配置

for find_package

# CMake module I wrote for finding the library Pistache.

set(Pistache_ROOT_DIR
        "${Pistache_ROOT_DIR}"
        CACHE
        PATH
        "Where to start looking for this component.")

if(WIN32)
    find_path(Pistache_INCLUDE_DIR
            NAMES
            pistache
            PATHS
            "C:\\Program Files"
            HINTS
            ${Pistache_ROOT_DIR}
            PATH_SUFFIXES
            include)

    find_library(Pistache_LIBRARY
            NAMES
            libnet
            libnet_static
            HINTS
            ${Pistache_ROOT_DIR}
            PATH_SUFFIXES
            lib)

else()
    find_path(Pistache_INCLUDE_DIR
            NAMES
            pistache/cookie.h
            cookie.h
            HINTS
            ${Pistache_ROOT_DIR}
            PATHS
            /usr/local/include
            /usr/include
            PATH_SUFFIXES
            include)

    find_library(Pistache_LIBRARY
            NAMES
            libnet.so
            libnet_static.sa
            HINTS
            ${Pistache_ROOT_DIR}
            PATHS
            usr/local
            usr/local/lib
            PATH_SUFFIXES
            lib64
            lib)
endif()

mark_as_advanced(Pistache_INCLUDE_DIR
        Pistache_LIBRARY)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Pistache
        DEFAULT_MSG
        Pistache_INCLUDE_DIR
        Pistache_LIBRARY)

if(Pistache_FOUND)
    set(Pistache_INCLUDE_DIRS
            "${Pistache_INCLUDE_DIR}")
    # Add any dependencies here
    set(Pistache_LIBRARIES
            "${Pistache_LIBRARY}")
    # Add any dependencies here
    mark_as_advanced(Pistache_ROOT_DIR)
endif()

把上面的代码保存到FindPistache.cmake文件,并放入project 目录下面

<project_dir>/cmake

然后在CMakeLists.txt文件夹下配置如下:

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")  # 添加cmake_module_path
find_package(Pistache)    # 在新的cmake_module_path下寻找pistache

配置target

添加include目录

include_directories("${Pistache_INCLUDE_DIRS}") 

链接到target

target_link_libraries(<your_target> ${Pistache_LIBRARIES})

ps:如果发现这里看不太明白,建议对cmake有一定了解的可以取看一下FindPistache.cmake文件的内容。

使用

#include "pistache/net.h"
#include "pistache/http.h"
#include "pistache/router.h"
#include "pistache/endpoint.h"

using namespace Net;

struct HelloHandler : public Http::Handler {
    void onRequest(const Http::Request& req, Http::ResponseWriter response) {
        response.send(Http::Code::Ok, "Hello, World");
    }
};

int main() {
    Http::listenAndServe<HelloHandler>("*:9080");
}

测试

# on shell
$ curl http://127.0.0.1:9080
Hello, World  # out
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值