Actix-web 项目中的输入验证、错误处理与日志记录
在开发基于 Actix-web 的项目时,输入验证、错误处理和日志记录是确保系统稳定性和可维护性的关键环节。下面将详细介绍这些方面的相关内容。
输入验证
在处理 API 请求时,输入验证是必不可少的步骤。以猫的 ID 为例,它可能存在多种错误情况。如果 ID 不是整数,Actix-web 的类型安全提取器会返回 404 错误,此错误可自定义,后续会详细说明。这里先处理 ID 为整数但不在合理范围内的情况。
由于猫的 ID 采用 id SERIAL PRIMARY KEY 模式,PostgreSQL 会从 1 开始,每次插入新行时递增 1,所以 ID 不能小于 1。假设网站仅允许用户添加独特的猫品种,国际猫协会(TICA)认可的标准化品种有 71 种,考虑到未来品种可能翻倍,可将 ID 范围设定在 1 到 150 之间(包含 1 和 150)。若 ID 不在此范围内,可直接拒绝请求,无需查询数据库。
为更声明式地验证输入参数,可使用 validator crate。操作步骤如下:
1. 使用命令 cargo add validator --features derive 添加 validator crate。
2. 对猫的 ID 应用验证,示例代码如下:
use validator::Validate;
// ...
#[derive(Deserialize, Validate)]
stru
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



