3个版本
0.1.2 | 2019年9月22日 |
---|---|
0.1.1 | 2019年9月16日 |
0.1.0 | 2019年9月16日 |
#1501 in 过程宏
4KB
Actix web flask 装饰器
- Cargo包: awf-help
示例
extern crate awf_help;
use actix_web::{web, App, HttpRequest, HttpServer, Responder};
use awf_help::{config, route,route_res, ServiceFactory};
#[route(GET, "/")]
fn greet(req: HttpRequest) -> String {
let name = req.match_info().get("name").unwrap_or("World");
format!("Hello {}!", &name)
}
struct Hello{
}
#[route_res("/api/auth")]
impl Hello {
fn get(req: HttpRequest) -> String {
format!("get Hello !")
}
fn post(req: HttpRequest) -> String {
format!("post Hello !")
}
}
fn main() {
HttpServer::new(|| App::new().configure(config))
.bind("127.0.0.1:8000")
.expect("Can not bind to port 8000")
.run()
.unwrap();
}
lib.rs
:
这是awf-help
crate的文档。
示例
Cargo.toml添加
[dependencies]
awf-help = "0.1"
actix-web = "1.0"
inventory = "0.1"
导入命名空间
extern crate awf_help;
use awf_help::{config, route,route_res, ServiceFactory};
配置web服务
HttpServer::new(|| App::new().configure(config))
.bind("127.0.0.1:8000")
.expect("Can not bind to port 8000")
.run()
.unwrap();
添加装饰器
#[route(GET, "/")]
fn greet(req: HttpRequest) -> String {
let name = req.match_info().get("name").unwrap_or("World");
format!("Hello {}!", &name)
}
#[route(POST, "/")]
#[route(HEAD, "/")]
#[route_res("/hello")]
impl Hello {
fn get(req: HttpRequest) -> String {
format!("get Hello !")
}
fn post(req: HttpRequest) -> String {
format!("post Hello !")
}
}
依赖
~24MB
~524K SLoC