构建 REST API 的输入验证、错误处理与日志记录
在构建 REST API 时,输入验证、错误处理和日志记录是至关重要的环节。它们能够提升 API 的健壮性、可维护性和用户体验。下面将详细介绍这些方面的相关内容。
1. 输入验证
在处理猫的 ID 时,可能会出现多种错误情况。若 ID 不是整数,Actix-web 的类型安全提取器会返回 404 错误,此错误可自定义,后续会详细说明。这里先处理 ID 为整数但不在合理范围内的情况。
由于猫的 ID 采用 id SERIAL PRIMARY KEY 模式,PostgreSQL 会从 1 开始,每次插入新行时递增 1,所以 ID 不能小于 1。假设网站仅允许用户添加独特的猫品种,国际猫协会(TICA)认可的标准化品种有 71 种,考虑到未来品种可能翻倍,可预留一定缓冲,认为猫的品种约有 71 × 2 = 142 ≈ 150 种。因此,可检查猫的 ID 是否在 1 到 150(包含)之间,若不在此范围,可直接拒绝请求,无需查询数据库。
为更声明式地验证输入参数,可使用 validator crate。通过以下命令添加该 crate:
cargo add validator --features derive
以下是在猫的 ID 上使用 validator 的示例代码:
use validator::Validate;
// ...
超级会员免费看
订阅专栏 解锁全文
1452

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



