#http-error #error-response #error #http-response #http

anyhow-http

基于 anyhow 定制的 HTTP 错误

4 个版本 (重大更改)

0.4.0-rc.12024 年 5 月 23 日
0.3.0 2024 年 3 月 12 日
0.2.0 2024 年 1 月 3 日
0.1.0 2023 年 11 月 27 日

#9 in #http-error

Download history 73/week @ 2024-05-03 43/week @ 2024-05-10 95/week @ 2024-05-17 150/week @ 2024-05-24 85/week @ 2024-05-31 117/week @ 2024-06-07 131/week @ 2024-06-14 60/week @ 2024-06-21 44/week @ 2024-06-28 96/week @ 2024-07-05 103/week @ 2024-07-12 88/week @ 2024-07-19 124/week @ 2024-07-26 52/week @ 2024-08-02 48/week @ 2024-08-09 85/week @ 2024-08-16

每月 325 次下载

MIT 许可证

29KB
605

anyhow-http



anyhow-http 基于 anyhow 错误提供可定制的 HTTP 错误。此 crate 作为 anyhow 的超集,扩展功能以定义自定义 HTTP 错误响应。

示例

use axum::{
   routing::get,
   response::IntoResponse,
   Router,
};
use anyhow_http::{http_error_ret, response::Result};

#[tokio::main]
async fn main() {
    let app = Router::new()
        .route("/", get(handler));

    let listener = tokio::net::TcpListener::bind("127.0.0.1:3000")
        .await
        .unwrap();
    axum::serve(listener, app).await.unwrap();
}

fn fallible_operation() -> Result<()> {
    http_error_ret!(INTERNAL_SERVER_ERROR, "this is an error")
}

async fn handler() -> Result<impl IntoResponse> {
    fallible_operation()?;
    Ok(())
}

许可证

根据 MIT 许可。

依赖项

~1.4–2.8MB
~57K SLoC