From 18d60feb0481144660f07e6ad12478daa49a89d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Tue, 8 Sep 2026 10:40:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=20Raw=20=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=A2=84=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在计费前校验质量、背景和输出格式 规范化可选参数并保持单图请求契约 --- server-rs/crates/api-server/src/raw_image.rs | 44 ++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/server-rs/crates/api-server/src/raw_image.rs b/server-rs/crates/api-server/src/raw_image.rs index 15ab2c765..9b4cde5ac 100644 --- a/server-rs/crates/api-server/src/raw_image.rs +++ b/server-rs/crates/api-server/src/raw_image.rs @@ -119,6 +119,24 @@ fn prepare_request(payload: RawImageEditRequest) -> Result Result Result) -> Option { + value + .map(|value| value.trim().to_string()) + .filter(|value| !value.is_empty()) +} + +fn validate_optional_value( + value: Option<&str>, + field: &str, + allowed: [&str; N], +) -> Result<(), AppError> { + let Some(value) = value.map(str::trim).filter(|value| !value.is_empty()) else { + return Ok(()); + }; + if allowed.contains(&value) { + return Ok(()); + } + Err(bad_request(format!("{field} 值无效"))) +} + fn decode_image(value: RawImageData, field: &str) -> Result { let mime_type = value.mime_type.trim().to_string(); if mime_type.is_empty() {