| Crates.io | dumbo_web |
| lib.rs | dumbo_web |
| version | 0.1.0 |
| created_at | 2025-07-08 02:29:49.684822+00 |
| updated_at | 2025-07-08 02:29:49.684822+00 |
| description | helper functions for web development |
| homepage | |
| repository | https://github.com/cao5zy/dumbo_web |
| max_upload_size | |
| id | 1741976 |
| size | 6,374 |
helper functions for web development
以下示例展示如何在Actix-web路由处理函数中使用json_response和json_error:
use actix_web::{get, web, HttpResponse, Result};
use dumbo_web::{json_error, json_response};
use serde::Serialize;
// 成功响应示例
#[derive(Serialize)]
struct User {
id: u32,
name: String,
}
#[get("/user/{id}")]
async fn get_user(id: web::Path<u32>) -> Result<HttpResponse> {
let user_id = id.into_inner();
// 模拟数据库查询
if user_id == 0 {
return Ok(json_error(
"无效用户ID",
"ID必须大于0",
Some(1001)
));
}
let user = User {
id: user_id,
name: "Alice".to_string(),
};
Ok(json_response(user))
}
// 错误处理示例
#[get("/simulate-error")]
async fn simulate_error() -> Result<HttpResponse> {
let db_result: Result<(), std::io::Error> = Err(std::io::Error::new(
std::io::ErrorKind::ConnectionRefused,
"数据库连接失败"
));
match db_result {
Ok(_) => Ok(json_response("操作成功")),
Err(e) => Ok(json_error("数据库操作失败", e, Some(5001))),
}
}
json_response用于返回结构化成功响应,确保返回的结构具有一致性json_error自动记录错误并返回标准错误格式serde::Serialize自动序列化数据结构