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);
?>