w***g 发帖数: 5958 | 1 https://github.com/datasift/served
支持C++11,接口非常干净。这东西我估计写C++的自己或多或少都写过。
这个至少从接口上来说是我见过最好的,也没有啥乱七八糟的依赖,
除boost外就一个google的RE2。(网页上写了Ragel,其实不需要,因为
Ragel是编译期用的,输出已经在git里了,没必要自己重新跑一次。
或者说不装Ragel完全不影响使用,除非你要自己改它的代码。)
#include
int main(int argc, char const* argv[])
{
served::multiplexer mux;
mux.handle("/query")
.get([&](served::response & res, const served::request & req) {
res << "test: " << req.query["test"] << "\n";
});
served::net::server server("0.0.0.0", "8123", mux);
server.run(10);
return (EXIT_SUCCESS);
}
比如下面这个查询,
http://localhost:8123/query?test=example
返回就是test: example。 |
s******u 发帖数: 501 | 2 这个是封装了boost asio?这个例子看上去确实挺干净的 |
N*****m 发帖数: 42603 | 3 不错
【在 w***g 的大作中提到】 : https://github.com/datasift/served : 支持C++11,接口非常干净。这东西我估计写C++的自己或多或少都写过。 : 这个至少从接口上来说是我见过最好的,也没有啥乱七八糟的依赖, : 除boost外就一个google的RE2。(网页上写了Ragel,其实不需要,因为 : Ragel是编译期用的,输出已经在git里了,没必要自己重新跑一次。 : 或者说不装Ragel完全不影响使用,除非你要自己改它的代码。) : #include : int main(int argc, char const* argv[]) : { : served::multiplexer mux;
|
c*********e 发帖数: 16335 | 4 这个restful web services, 不需要验证用户名和密码的吗?
【在 w***g 的大作中提到】 : https://github.com/datasift/served : 支持C++11,接口非常干净。这东西我估计写C++的自己或多或少都写过。 : 这个至少从接口上来说是我见过最好的,也没有啥乱七八糟的依赖, : 除boost外就一个google的RE2。(网页上写了Ragel,其实不需要,因为 : Ragel是编译期用的,输出已经在git里了,没必要自己重新跑一次。 : 或者说不装Ragel完全不影响使用,除非你要自己改它的代码。) : #include : int main(int argc, char const* argv[]) : { : served::multiplexer mux;
|
w***g 发帖数: 5958 | 5 这个不知道有没有。没有的话加一个plugin,很容易加进去。
【在 c*********e 的大作中提到】 : 这个restful web services, 不需要验证用户名和密码的吗?
|
c*********e 发帖数: 16335 | 6 请把加了plugin后的代码贴出来,泄了。
【在 w***g 的大作中提到】 : 这个不知道有没有。没有的话加一个plugin,很容易加进去。
|
ET 发帖数: 10701 | 7 authentication can also be part of restful api.
a post request
【在 c*********e 的大作中提到】 : 这个restful web services, 不需要验证用户名和密码的吗?
|
g*****g 发帖数: 34805 | 8 一般是用basic authentication, 应该都支持。
【在 ET 的大作中提到】 : authentication can also be part of restful api. : a post request
|
|
w***g 发帖数: 5958 | 9 代码里没发现authentication相关的东西。
我的意思是得自己写plugin。
用C++,就别奢望whistles & bells了。
53 // register middleware / plugin
54 mux.use_before([](served::response & res, const served::request &
req) {
55 std::cout << "request: " << req.url().URI() << std::endl;
56 });
use_before里注册的代码会在每个请求之前处理,
把55行的地方改成从res中取出app key或这别的key什么的
进行验证就行。
【在 c*********e 的大作中提到】 : 请把加了plugin后的代码贴出来,泄了。
|
c*********e 发帖数: 16335 | 10 C++还要自己写basic authentication啊? java,c#, php都是有现成的。难怪c++现在
工作机会那么少,连个basic authen的轮子都没有。
【在 w***g 的大作中提到】 : 代码里没发现authentication相关的东西。 : 我的意思是得自己写plugin。 : 用C++,就别奢望whistles & bells了。 : 53 // register middleware / plugin : 54 mux.use_before([](served::response & res, const served::request & : req) { : 55 std::cout << "request: " << req.url().URI() << std::endl; : 56 }); : use_before里注册的代码会在每个请求之前处理, : 把55行的地方改成从res中取出app key或这别的key什么的
|
z*y 发帖数: 1311 | 11 pretty good
I use it for testing.
thanks |