我用相同的查询测试了8个营养API,只有2个返回了正确的数据。

发布: (2025年12月16日 GMT+8 19:47)
4 min read
原文: Dev.to

Source: Dev.to

实验概述

上周我做了一个简单的实验:我向八个不同的营养 API 发送了完全相同的查询——“100 g 去皮鸡胸肉”——并将它们的响应与 USDA FoodData Central 数据库(美国营养数据的黄金标准)进行比较。

USDA 参考

营养素USDA 值
能量165 kcal
蛋白质31.02 g
总脂肪3.57 g
饱和脂肪1.01 g
胆固醇85 mg

结果

API热量蛋白质脂肪准确性
API A16531 g3.6 g
API B23927.3 g13.6 g
API C16531 g3.6 g
API D19529.5 g7.7 g
API E17226 g6.8 g
API F14831.5 g1.2 g
API G16530.9 g3.8 g⚠️
Nutrition Tracker API16531.02 g3.57 g

只有八个 API 中的三个返回了准确的数据,其中一个(API G)显示了轻微的四舍五入差异。

为什么某些 API 不准确

  1. 用户提交的数据未经过验证 – 像“鸡胸肉”这种带皮、带骨或用油烹调的记录可能会成为默认记录。
  2. 过时的 USDA 数据 – 有的 API 仍在使用 2015 年的 USDA 数据集;USDA 会定期更新数据库,旧值会变得陈旧。
  3. 变体不匹配 – “鸡胸肉”可以指生的或熟的、去皮或带皮、带骨或去骨、烤的或炸的等。有些 API 完全返回了错误的变体。

实际影响

  • 每餐 50 kcal 误差 × 4 餐/天 = 200 kcal/天1,400 kcal/周,约相当于半磅体重差异。
  • 蛋白质报告错误(例如 27 g vs. 31 g)会影响临床剂量(例如 1.2 g 蛋白质/公斤体重)。
  • 营养标签有法律要求;数据不准确可能导致 FDA 合规问题和法律责任。

确保数据准确

Nutrition Tracker API 中的每个食品项目都直接映射到 USDA FoodData Central 记录,消除歧义。

{
  "data": {
    "fdcId": 331960,
    "description": "Chicken, breast, meat only, raw"
  }
}

当你搜索 “chicken breast” 时,NLP 解析器会识别:

  • 基础食物(鸡胸肉)
  • 烹饪方式(如果有指定)
  • 份量/数量(100 g、1 杯 等)

并返回精准的 USDA 匹配。

脂肪细分示例

{
  "Fat": {
    "value": 3.57,
    "unit": "g",
    "breakdown": {
      "saturated": { "value": 1.01, "unit": "g" },
      "monounsaturated": { "value": 1.24, "unit": "g" },
      "polyunsaturated": { "value": 0.77, "unit": "g" },
      "trans": { "value": 0.02, "unit": "g" },
      "other": { "value": 0.53, "unit": "g", "note": "Includes phospholipids and minor fatty acids" }
    }
  }
}

1.01 + 1.24 + 0.77 + 0.02 + 0.53 = 3.57 g ✓ – 计算结果相符。

每个响应都包含 USDA FDC ID,您可以自行核实来源——没有黑箱。

如何自行验证

  1. 选择一种你熟悉的食物。
  2. 将相同的查询发送给多个营养 API。
  3. 将结果与 USDA FoodData Central 进行比较。

你很可能会看到相同的差异模式。

Test It Yourself

curl -X POST "https://nutrition-tracker-api.p.rapidapi.com/v1/calculate/natural" \
  -H "X-RapidAPI-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "100g chicken breast"}'

将响应与 USDA FDC 记录进行比较。每个数值都应匹配。

链接

  • 🔬 [在 USDA FoodData Central 验证]
  • 🚀 [在 RapidAPI 上尝试 API]
  • 📦 SDK(Python、JavaScript、Java)

如果您在任何营养 API 中发现数据不一致,请随时发表评论或提交 issue。我会修复它,或解释 USDA 的数值为何与预期不同。

Back to Blog

相关文章

阅读更多 »