3个版本

0.1.2 2019年9月22日
0.1.1 2019年9月16日
0.1.0 2019年9月16日

#1501 in 过程宏

MIT许可证

4KB

Actix web flask 装饰器

示例

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-helpcrate的文档。

示例

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