import type { FoodItemDto, FoodLibraryResponseDto, GetFoodByIdParams, SearchFoodsParams } from '@/types/food'; import { api } from './api'; /** * 食物库 API 服务 */ export class FoodLibraryApi { private static readonly BASE_PATH = '/food-library'; /** * 获取食物库列表 */ static async getFoodLibrary(): Promise { return api.get(this.BASE_PATH); } /** * 搜索食物 */ static async searchFoods(params: SearchFoodsParams): Promise { const { keyword } = params; if (!keyword || keyword.trim().length === 0) { return []; } const encodedKeyword = encodeURIComponent(keyword.trim()); return api.get(`${this.BASE_PATH}/search?keyword=${encodedKeyword}`); } /** * 根据ID获取食物详情 */ static async getFoodById(params: GetFoodByIdParams): Promise { const { id } = params; return api.get(`${this.BASE_PATH}/${id}`); } } // 导出便捷方法 export const foodLibraryApi = { getFoodLibrary: () => FoodLibraryApi.getFoodLibrary(), searchFoods: (keyword: string) => FoodLibraryApi.searchFoods({ keyword }), getFoodById: (id: number) => FoodLibraryApi.getFoodById({ id }), };