#actix-web #json #actix

actix-json-response

Actix-web 的 json 响应辅助类型

4 个版本

0.1.3 2022年4月16日
0.1.2 2022年4月16日
0.1.1 2022年4月16日
0.1.0 2022年4月16日

#99#actix

Download history 30/week @ 2024-03-29 24/week @ 2024-04-05 16/week @ 2024-04-12 9/week @ 2024-04-19 6/week @ 2024-04-26 80/week @ 2024-05-03 69/week @ 2024-05-10 190/week @ 2024-05-17 99/week @ 2024-05-24 100/week @ 2024-05-31 13/week @ 2024-06-07 77/week @ 2024-06-14 131/week @ 2024-06-21 75/week @ 2024-06-28 57/week @ 2024-07-05 7/week @ 2024-07-12

每月下载量 285

MIT/Apache

7KB

Actix Json Response

一个在 Actix-Web 中公开辅助类型的 Json 响应的库。

Continuous Integration license-badge rust-version-badge

入门

如何安装

actix-json-response 添加到您的依赖项中

[dependencies]
# ...
actix-web = "4"
actix-json-response = "0.1"

快速入门

actix-json-response公开了JsonResponse类型,该类型实现了 Actix 的Responder特质。它是泛型的,接收一个必须实现 Serde 的Serialize特质的类型参数。

use actix_web::{get, web, Result};
use actix_json_response::JsonResponse;
use serde::Serialize;

#[derive(Serialize)]
struct MyObj {
    name: String,
}

#[get("/a/{name}")]
async fn index(name: web::Path<String>) -> Result<JsonResponse<MyObj>> {
    let my_obj = MyObj {
        name: name.to_string(),
    };
    Ok(my_obj.into())
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    use actix_web::{App, HttpServer};

    HttpServer::new(|| App::new().service(index))
        .bind(("127.0.0.1", 8080))?
        .run()
        .await
}

默认情况下,响应将具有状态码 200。如果需要响应具有不同的状态码,可以使用接收 Actix 的StatusCodewith_status_code方法。

use actix_web::http::StatusCode;

#[get("/a/{name}")]
async fn index(name: web::Path<String>) -> Result<JsonResponse<MyObj>> {
    let my_obj = MyObj {
        name: name.to_string(),
    };
    Ok(JsonResponse::from(my_obj).with_status_code(StatusCode::CREATED)) // The response will have status code 201 in this case
}

许可

MIT 许可证Apache 许可证 下分发。

依赖项

~15–29MB
~470K SLoC