食物营养素数据库 API

专业的营养数据查询服务,涵盖13类食物和98个营养参数

健康营养 · 数据驱动

API 概览

海量数据

包含13大类食物,超过200种具体食材,每种食物提供98个详细营养参数

快速响应

毫秒级响应速度,支持高并发查询,为您的应用提供稳定可靠的服务

安全可靠

采用API Key认证机制,数据加密传输,确保调用安全和数据隐私

食物分类

谷类

  • 小麦
  • 稻米
  • 玉米
  • 大麦
  • 小米黄米
  • 其他谷类

薯类

  • 土豆
  • 红薯
  • 马铃薯
  • 淀粉类

干豆类

  • 大豆
  • 绿豆
  • 赤豆
  • 芸豆
  • 蚕豆
  • 其他干豆类

蔬菜类

  • 根菜类
  • 鲜豆类
  • 茄果瓜菜类
  • 葱蒜类
  • 内茎叶花菜类
  • 水生蔬菜类
  • 薯芋类
  • 野生蔬菜类

菌藻类

  • 蘑菇
  • 香菇
  • 海带
  • 紫菜

水果类

  • 仁果类
  • 核果类
  • 浆果类
  • 柑橘类
  • 热带亚热带水果
  • 瓜果类

坚果种子类

  • 核桃
  • 杏仁
  • 花生
  • 葵花籽
  • 植物油

畜肉类

  • 猪肉
  • 牛肉
  • 羊肉
  • 驴肉
  • 马肉
  • 其他畜肉类

禽肉类

  • 鸡肉
  • 鸭肉
  • 鹅肉
  • 火鸡肉
  • 其他禽肉类

乳类

  • 液态乳
  • 奶粉
  • 酸奶
  • 奶酪
  • 奶油
  • 其他乳类

蛋类

  • 鸡蛋
  • 鸭蛋
  • 鹅蛋
  • 鹌鹑蛋

鱼虾蟹贝类

  • 鱼类
  • 虾类
  • 蟹类
  • 贝类
  • 其他海产品

营养参数

基本信息

12项

能量营养素

18项

维生素

23项

矿物质

14项

氨基酸

24项

脂肪酸

61项

营养组成分析

详细的宏量营养素和微量营养素数据,支持营养标签制作和膳食评估

营养计算

精确的营养素含量计算,支持个性化营养需求分析和膳食搭配建议

API 文档

食物查询接口

获取指定食物的详细营养信息

GET /api/v1/food/{foodId}

请求参数

foodId String
apiKey String
appKey String

响应示例

{
  "status": "success",
  "data": {
    "foodName": "大米",
    "category": "谷类",
    "nutrition": {
      "energy_kcal": 346,
      "protein": 7.4,
      "fat": 0.9,
      "carbohydrates": 77.9,
      "vitamin_a": 0,
      "calcium": 10,
      "iron": 1.8
    }
  }
}

分类查询接口

按食物分类获取营养数据列表

GET /api/v1/category/{categoryId}

请求参数

categoryId String
page Integer
pageSize Integer

响应示例

{
  "status": "success",
  "data": {
    "total": 12,
    "foods": [
      {
        "foodId": "1001",
        "foodName": "粳米",
        "mainNutrition": {
          "energy": "346 kcal",
          "protein": "7.4 g"
        }
      },
      {
        "foodId": "1002",
        "foodName": "籼米",
        "mainNutrition": {
          "energy": "334 kcal",
          "protein": "6.8 g"
        }
      }
    ]
  }
}

营养分析接口

获取指定营养素的详细分析数据

GET /api/v1/nutrition/{nutritionId}

请求参数

nutritionId String
threshold Float

响应示例

{
  "status": "success",
  "data": {
    "nutritionName": "维生素B1",
    "richFoods": [
      {
        "foodName": "糙米",
        "content": "0.38 mg/100g",
        "rank": 1
      },
      {
        "foodName": "葵花籽",
        "content": "0.34 mg/100g",
        "rank": 2
      }
    ]
  }
}

代码示例

JavaScript 示例

使用 Fetch API 获取食物营养数据

// 设置您的API密钥
const API_KEY = 'your_api_key_here';
const APP_KEY = 'your_app_key_here';

// 查询大米的营养信息
fetch('https://api.nutritiondb.com/api/v1/food/1001', {
    headers: {
        'x-api-key': API_KEY,
        'x-app-key': APP_KEY
    }
})
.then(response => response.json())
.then(data => {
    if (data.status === 'success') {
        console.log('大米营养信息:', data.data.nutrition);
    }
})
.catch(error => console.error('查询错误:', error));

Python 示例

使用 Requests 库调用 API

# 导入必要的库
import requests

# API配置
API_KEY = 'your_api_key_here'
APP_KEY = 'your_app_key_here'
BASE_URL = 'https://api.nutritiondb.com/api/v1'

# 设置请求头
headers = {
    'x-api-key': API_KEY,
    'x-app-key': APP_KEY
}

# 查询小麦的营养信息
response = requests.get(f'{BASE_URL}/food/1003', headers=headers)

if response.status_code == 200:
    data = response.json()
    if data['status'] == 'success':
        print('小麦营养信息:', data['data']['nutrition'])
else:
    print('查询失败:', response.status_code)

Java 示例

使用 HttpClient 调用 API

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Map;

public class NutritionApiClient {
    // API配置
    private static final String API_KEY = "your_api_key_here";
    private static final String APP_KEY = "your_app_key_here";
    private static final String BASE_URL = "https://api.nutritiondb.com/api/v1";
    
    public static void main(String[] args) throws Exception {
        // 创建HTTP客户端
        HttpClient client = HttpClient.newHttpClient();
        
        // 构建请求
        HttpRequest request = HttpRequest.newBuilder()
            .uri(new URI(BASE_URL + "/food/1001"))
            .header("x-api-key", API_KEY)
            .header("x-app-key", APP_KEY)
            .GET()
            .build();
        
        // 发送请求并处理响应
        HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
        
        if (response.statusCode() == 200) {
            System.out.println("响应内容: " + response.body());
        } else {
            System.out.println("请求失败: " + response.statusCode());
        }
    }
}

PHP 示例

使用 cURL 扩展调用 API

<?php
// API配置
$API_KEY = 'your_api_key_here';
$APP_KEY = 'your_app_key_here';
$BASE_URL = 'https://api.nutritiondb.com/api/v1';

// 要查询的食物ID
$foodId = '1001';

// 初始化cURL
$ch = curl_init();

// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, $BASE_URL . '/food/' . $foodId);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'x-api-key: ' . $API_KEY,
    'x-app-key: ' . $APP_KEY
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行请求
$response = curl_exec($ch);

// 检查错误
if ($response === false) {
    echo 'cURL错误: ' . curl_error($ch);
} else {
    // 解析JSON响应
    $data = json_decode($response, true);
    
    if ($data['status'] === 'success') {
        echo '营养信息: ';
        print_r($data['data']['nutrition']);
    } else {
        echo 'API错误: ' . $data['message'];
    }
}

// 关闭cURL
curl_close($ch);
?>