refactor(api): 统一API响应格式规范
重构营养成分分析相关接口,统一使用base.dto.ts中定义的通用响应结构体ApiResponseDto,规范所有接口返回格式。更新AI模型prompt以返回标准化的code、msg、data结构,并添加相应的验证装饰器确保数据完整性。
This commit is contained in:
@@ -185,22 +185,7 @@ export class DietRecordsController {
|
||||
this.logger.log(`分析营养成分表 - 用户ID: ${user.sub}, 图片URL: ${requestDto.imageUrl}`);
|
||||
|
||||
if (!requestDto.imageUrl) {
|
||||
return {
|
||||
success: false,
|
||||
data: [],
|
||||
message: '请提供图片URL'
|
||||
};
|
||||
}
|
||||
|
||||
// 验证URL格式
|
||||
try {
|
||||
new URL(requestDto.imageUrl);
|
||||
} catch (error) {
|
||||
return {
|
||||
success: false,
|
||||
data: [],
|
||||
message: '图片URL格式不正确'
|
||||
};
|
||||
return NutritionAnalysisResponseDto.createError('请提供图片URL');
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -208,14 +193,15 @@ export class DietRecordsController {
|
||||
|
||||
this.logger.log(`营养成分表分析完成 - 用户ID: ${user.sub}, 成功: ${result.success}, 营养素数量: ${result.data.length}`);
|
||||
|
||||
return result;
|
||||
// 转换旧的响应格式到新的通用格式
|
||||
if (result.success) {
|
||||
return NutritionAnalysisResponseDto.createSuccess(result.data, result.message || '分析成功');
|
||||
} else {
|
||||
return NutritionAnalysisResponseDto.createError(result.message || '分析失败');
|
||||
}
|
||||
} catch (error) {
|
||||
this.logger.error(`营养成分表分析失败 - 用户ID: ${user.sub}, 错误: ${error instanceof Error ? error.message : String(error)}`);
|
||||
return {
|
||||
success: false,
|
||||
data: [],
|
||||
message: '营养成分表分析失败,请稍后重试'
|
||||
};
|
||||
return NutritionAnalysisResponseDto.createError('营养成分表分析失败,请稍后重试');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user