12、构建 REST API 的输入验证、错误处理与日志记录

构建 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;
// ...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值