响应类型支持泛型 (#144)
资源类型支持泛型(#143)
百分比解码字符串和PathBufs (#108)
修复panic在内容类型未提供时 (#123).
所有数字类型实现Extract (#131).
忽略其他derives的属性 (#130).
禁用日志记录时避免clone(#126).
添加非阻塞serve方法来运行服务器 (#76).
Tower-web介绍:
符合人体工程学:Tower-web将HTTP与应用程序逻辑分离,删除所有样板。
适用于Rust stable:您今天可以使用它。
#[macro_use]
extern crate tower_web;
extern crate tokio;
使用 tower_web :: ServiceBuilder;
使用 tokio :: prelude :: * ;
///此类型将作为资源的Web服务的一部分。
#[derive(Clone,Debug)]
struct HelloWorld ;
///这将是JSON响应
#[导出(响应)]
struct HelloResponse {
消息:&' static str,
}
impl_web!{
impl HelloWorld {
#[get(“/”)]
#[content_type(“json”)]
fn hello_world(&self) - > Result <HelloResponse,()> {
Ok(HelloResponse {
消息:“你好世界”,
})
}
}
}
pub fn main(){
let addr = “127.0.0.1:8080”。解析()。期望(“无效地址”);
调用println!(“听取http:// {}”,addr);
ServiceBuilder :: new()
。资源(HelloWorld)
。运行(& addr)
。unwrap();
}
Tower-web 基于 Tokio(Rust的并发框架与平台)和Hyper(Rust的HTTP的server框架)。
Tower-web 是 Tokio 生态系统的一部分。
本文来自云栖社区合作伙伴“开源中国”
本文作者: krircc