4个版本

0.1.3 2020年9月2日
0.1.2 2020年9月1日
0.1.1 2020年9月1日
0.1.0 2020年9月1日

HTTP服务器中排名1214

每月33次下载

MIT许可证

11KB
133 代码行

Hightide

Hightide是tide Web框架的扩展。它提供了一个高级接口来构建响应。

要使用它,请使用wrap函数包装您的端点。这个包装器允许您的端点返回实现Responder特质的各种类型。

Hightide还包括一个响应类型,它比tide提供的类型更容易使用。它具有将体设置为JSON或表单有效负载以及从hyperx包添加类型化头部的快捷方法。

Responder为各种类型实现了,例如(StatusCode, impl Responder),这使得您能够

use tide::{Request, StatusCode};
use hightide::Responder;

fn example(_: tide::Request<()>) -> impl Responder {
     (StatusCode::Conflict, "Already Exists")
}

这比纯tide中的等效代码更简单

use tide::{Request, StatusCode};
use hightide::Responder;

fn example(_: Request<()>) -> tide::Result {
    Ok(Response::builder(StatusCode::Conflict)
        .body("Already Exists")
        .build())
}

Json包装器还允许更直接地返回JSON响应。

use tide::{Request};
use hightide::{Responder, Json};

fn example(_: tide::Request<()>) -> impl Responder {
     Json(MyData{ ... })
}

use tide::{Request, StatusCode};

fn example(_: Request<()>) -> tide::Result {
    Ok(Response::builder(StatusCode::Ok)
        .body(Body::from_json(&MyData{ ... })?)
        .build())
}

依赖关系

~12–23MB
~354K SLoC