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
每月下载量 285
7KB
Actix Json Response
一个在 Actix-Web 中公开辅助类型的 Json 响应的库。
入门
如何安装
将 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 的StatusCode
的with_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