API بيانات التغذية من Nutrola: كيف يمكن للمطورين الوصول إلى قاعدة بيانات الطعام لدينا
دليل المطورين لواجهة برمجة تطبيقات Nutrola لبيانات التغذية. تعلم كيفية الوصول إلى قاعدة بيانات الطعام المعتمدة لدينا التي تحتوي على أكثر من 3 ملايين إدخال، واستكشاف نقاط النهاية، والمصادقة، وحالات الاستخدام الواقعية.
هل تعمل على بناء تطبيق صحي أو رياضي أو متعلق بالطعام؟ واحدة من أكبر التحديات التي ستواجهها هي بيانات التغذية. تحتاج إلى معلومات دقيقة عن السعرات الحرارية والماكرو لآلاف الأطعمة، وتحتاج إلى أن تشمل المنتجات الدولية، ويجب أن تبقى محدثة مع إعادة صياغة الشركات المصنعة لمنتجاتها.
يبدأ معظم المطورين بجمع البيانات من قواعد البيانات الحكومية المفتوحة مثل USDA FoodData Central. هذا يوفر لك أساسًا، لكنه لا يغطي المنتجات الماركة من 47 دولة، أو وجبات المطاعم، أو الآلاف من الأطعمة الإقليمية التي يستهلكها المستخدمون يوميًا. ملء هذه الفجوات بنفسك يعني سنوات من العمل في تنسيق البيانات.
تقدم واجهة برمجة تطبيقات Nutrola لبيانات التغذية للمطورين الوصول إلى نفس قاعدة بيانات الطعام المعتمدة التي تدعم تطبيقنا — أكثر من 3 ملايين إدخال، تغطي المكونات الخام، والمنتجات الماركة، ووجبات المطاعم، والوصفات المركبة. كل إدخال يتم التحقق منه من خلال عملية مراقبة الجودة متعددة الطبقات لدينا، وهي نفس النظام الذي يثق به أكثر من 2 مليون مستخدم.
يغطي هذا الدليل كل ما تحتاج لمعرفته لبدء البناء باستخدام واجهة برمجة التطبيقات الخاصة بنا: الهيكل، المصادقة، نقاط النهاية، حدود المعدل، وأمثلة على الشيفرات من العالم الحقيقي.
نظرة عامة على واجهة برمجة التطبيقات
واجهة برمجة تطبيقات Nutrola لبيانات التغذية هي واجهة برمجة تطبيقات JSON RESTful. تقوم بإجراء طلبات HTTP، وتحصل على استجابات JSON. لا حاجة لمكتبات SDK، على الرغم من أننا نقدم مكتبات عميل لـ Python وJavaScript وSwift للراحة.
عنوان URL الأساسي
https://api.nutrola.com/v1
تُقدم جميع نقاط النهاية عبر HTTPS. يتم رفض طلبات HTTP العادية.
القدرات الرئيسية
| القدرة | الوصف |
|---|---|
| بحث الطعام | بحث نصي كامل عبر أكثر من 3 ملايين إدخال طعام مع تصفية حسب الفئة، الماركة، والدولة |
| البحث بالباركود | الحصول على بيانات التغذية بواسطة UPC أو EAN أو تنسيقات باركود أخرى |
| تفاصيل التغذية | ملف تغذية كامل لأي طعام (أكثر من 70 عنصر غذائي بما في ذلك العناصر الدقيقة) |
| أحجام الحصص | أحجام الحصص القياسية والبديلة مع تحويلات جرام |
| تحليل الوصفات | تقديم قائمة بالمكونات والحصول على بيانات التغذية المجمعة |
| فئات الطعام | تصفح تصنيف فئات الطعام الهرمي |
| دليل الماركات | بحث وتصفح مصنعي الأطعمة الماركة |
| الإكمال التلقائي | اقتراحات سريعة أثناء الكتابة لواجهات بحث الطعام |
تنسيق الاستجابة
تتبع جميع الاستجابات هيكلًا متسقًا:
{
"status": "success",
"data": { },
"meta": {
"request_id": "req_abc123",
"rate_limit_remaining": 245,
"rate_limit_reset": "2026-03-10T15:00:00Z"
}
}
تتضمن استجابات الأخطاء رمز خطأ يمكن قراءته آليًا ورسالة مفهومة للبشر:
{
"status": "error",
"error": {
"code": "FOOD_NOT_FOUND",
"message": "لا توجد إدخال طعام يتطابق مع المعرف المقدم.",
"request_id": "req_xyz789"
}
}
المصادقة
تتطلب جميع طلبات واجهة برمجة التطبيقات مفتاح API يتم تمريره في رأس Authorization.
الحصول على مفتاح API
- أنشئ حساب مطور في developer.nutrola.com
- انتقل إلى قسم مفاتيح API في لوحة التحكم الخاصة بك
- أنشئ مفتاحًا جديدًا وحدد النطاقات التي تحتاجها
- احتفظ بالمفتاح بشكل آمن — سيتم عرضه مرة واحدة فقط
استخدام مفتاح API الخاص بك
قم بتضمين المفتاح في كل رأس طلب:
Authorization: Bearer YOUR_API_KEY
مثال باستخدام curl:
curl -H "Authorization: Bearer ntr_live_abc123def456" \
https://api.nutrola.com/v1/foods/search?q=chicken+breast
نطاقات مفتاح API
| النطاق | مستوى الوصول |
|---|---|
foods:read |
البحث واسترجاع بيانات الطعام (الأكثر شيوعًا) |
barcodes:read |
البحث بالباركود |
recipes:analyze |
تحليل التغذية للوصفات |
brands:read |
الوصول إلى دليل الماركات |
categories:read |
تصنيف فئات الطعام |
يمكن تحديد مفاتيح النطاقات لقدرات محددة. مفتاح يحتوي فقط على foods:read لا يمكنه الوصول إلى عمليات البحث بالباركود. يتبع هذا مبدأ الحد الأدنى من الامتياز — اطلب فقط النطاقات التي يحتاجها تطبيقك.
نقاط النهاية الأساسية
بحث الطعام
ابحث في قاعدة البيانات حسب الاسم أو الكلمة الرئيسية أو العبارة.
GET /v1/foods/search
المعلمات:
| المعلمة | النوع | مطلوب | الوصف |
|---|---|---|---|
q |
string | نعم | استعلام البحث (مثل "صدر دجاج مشوي") |
category |
string | لا | تصفية حسب فئة الطعام (مثل "منتجات الألبان"، "الخضروات") |
brand |
string | لا | تصفية حسب اسم الماركة |
country |
string | لا | رمز الدولة ISO 3166-1 alpha-2 (مثل "US"، "DE"، "JP") |
verified_only |
boolean | لا | إرجاع الإدخالات التي تحتوي على بيانات مصدر موثوقة فقط (افتراضي: true) |
page |
integer | لا | رقم الصفحة للتصفح (افتراضي: 1) |
per_page |
integer | لا | النتائج لكل صفحة، الحد الأقصى 50 (افتراضي: 20) |
مثال على الطلب:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.nutrola.com/v1/foods/search?q=greek+yogurt&country=US&per_page=5"
مثال على الاستجابة:
{
"status": "success",
"data": {
"results": [
{
"id": "food_8f2k9d",
"name": "زبادي يوناني، عادي، خالي من الدسم",
"brand": null,
"category": "منتجات الألبان",
"country": "US",
"verified": true,
"source": "USDA",
"nutrition_per_100g": {
"calories": 59,
"protein": 10.2,
"carbohydrates": 3.6,
"fat": 0.4,
"fiber": 0,
"sugar": 3.2,
"sodium": 36
},
"default_serving": {
"description": "1 حاوية (170g)",
"grams": 170
}
}
],
"total_results": 342,
"page": 1,
"per_page": 5
}
}
الحصول على تفاصيل الطعام
استرجع الملف الغذائي الكامل لطعام معين.
GET /v1/foods/{food_id}
مثال على الطلب:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.nutrola.com/v1/foods/food_8f2k9d"
تتضمن استجابة التفاصيل تحليل العناصر الغذائية الكامل — أكثر من 70 عنصر غذائي بما في ذلك جميع الفيتامينات، والمعادن، والأحماض الأمينية، وملفات الأحماض الدهنية. كما تتضمن جميع أحجام الحصص المتاحة ومعادلاتها بالجرام.
استجابة جزئية (العناصر الغذائية الرئيسية):
{
"status": "success",
"data": {
"id": "food_8f2k9d",
"name": "زبادي يوناني، عادي، خالي من الدسم",
"nutrition_per_100g": {
"calories": 59,
"protein": 10.2,
"carbohydrates": 3.6,
"fat": 0.4,
"fiber": 0,
"sugar": 3.2,
"saturated_fat": 0.1,
"monounsaturated_fat": 0.1,
"polyunsaturated_fat": 0,
"cholesterol": 5,
"sodium": 36,
"potassium": 141,
"calcium": 110,
"iron": 0.1,
"vitamin_a": 4,
"vitamin_c": 0,
"vitamin_d": 0
},
"serving_sizes": [
{ "description": "1 حاوية (170g)", "grams": 170 },
{ "description": "1 كوب (245g)", "grams": 245 },
{ "description": "1 ملعقة طعام (15g)", "grams": 15 },
{ "description": "100g", "grams": 100 }
],
"allergens": ["حليب"],
"source": "USDA",
"source_id": "170903",
"last_verified": "2026-02-15",
"confidence_score": 0.98
}
}
البحث بالباركود
ابحث عن منتج غذائي بواسطة باركوده.
GET /v1/barcodes/{barcode}
التنسيقات المدعومة: UPC-A، UPC-E، EAN-13، EAN-8
مثال على الطلب:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.nutrola.com/v1/barcodes/0049000006346"
تُرجع الاستجابة نفس كائن تفاصيل الطعام كما في نقطة النهاية /foods/{food_id}، مع حقول إضافية خاصة بالباركود مثل barcode_format وregional_variants (مجموعة من معرفات الطعام لنفس المنتج في دول مختلفة، والتي قد تحتوي على تركيبات مختلفة).
تحليل الوصفات
قدّم قائمة بالمكونات واحصل على تحليل التغذية المجمعة.
POST /v1/recipes/analyze
جسم الطلب:
{
"name": "شوفان بين عشية وضحاها",
"servings": 2,
"ingredients": [
{ "food_id": "food_3k8m2n", "grams": 160 },
{ "food_id": "food_9p4q7r", "grams": 400 },
{ "food_id": "food_1a5b8c", "grams": 60 },
{ "food_id": "food_6d2e9f", "grams": 2, "description": "رشة ملح" }
]
}
يمكنك أيضًا تقديم المكونات كنص لعملية تحليل تلقائية:
{
"name": "شوفان بين عشية وضحاها",
"servings": 2,
"ingredients_text": "160g شوفان، 400ml حليب كامل الدسم، 60g زبدة فول سوداني، رشة ملح"
}
الاستجابة:
{
"status": "success",
"data": {
"name": "شوفان بين عشية وضحاها",
"servings": 2,
"nutrition_per_serving": {
"calories": 425,
"protein": 18.5,
"carbohydrates": 42.3,
"fat": 21.2,
"fiber": 5.8
},
"nutrition_total": {
"calories": 850,
"protein": 37.0,
"carbohydrates": 84.6,
"fat": 42.4,
"fiber": 11.6
},
"ingredients_matched": [
{ "input": "160g شوفان", "matched_food": "food_3k8m2n", "confidence": 0.97 },
{ "input": "400ml حليب كامل الدسم", "matched_food": "food_9p4q7r", "confidence": 0.99 },
{ "input": "60g زبدة فول سوداني", "matched_food": "food_1a5b8c", "confidence": 0.96 },
{ "input": "رشة ملح", "matched_food": "food_6d2e9f", "confidence": 0.88 }
]
}
}
الإكمال التلقائي
اقتراحات سريعة أثناء الكتابة لبناء واجهات البحث.
GET /v1/foods/autocomplete?q={query}
المعلمات:
| المعلمة | النوع | مطلوب | الوصف |
|---|---|---|---|
q |
string | نعم | استعلام البحث الجزئي (حد أدنى 2 حرف) |
limit |
integer | لا | الحد الأقصى للنتائج، 1-10 (افتراضي: 5) |
country |
string | لا | إعطاء الأولوية للنتائج من هذه الدولة |
تكون أوقات الاستجابة محسّنة للاستخدام التفاعلي — عادةً أقل من 50 مللي ثانية. تُرجع نقطة النهاية للإكمال التلقائي كائنات طعام مبسطة (معرف، اسم، ماركة، وفئة فقط) للتقديم السريع.
حدود المعدل والتسعير
المستوى المجاني
تم تصميم المستوى المجاني للتطوير، والاختبار، والتطبيقات الصغيرة:
| الحد | القيمة |
|---|---|
| الطلبات في اليوم | 500 |
| الطلبات في الدقيقة | 30 |
| نتائج بحث الطعام لكل طلب | 20 |
| تحليل الوصفات في اليوم | 10 |
| عمليات البحث بالباركود في اليوم | 100 |
مستوى النمو
للتطبيقات الإنتاجية ذات الحركة المعتدلة:
| الحد | القيمة |
|---|---|
| الطلبات في اليوم | 25,000 |
| الطلبات في الدقيقة | 300 |
| نتائج بحث الطعام لكل طلب | 50 |
| تحليل الوصفات في اليوم | 500 |
| عمليات البحث بالباركود في اليوم | 5,000 |
| السعر | $49/month |
المستوى المؤسسي
للتطبيقات ذات الحركة العالية، وحلول العلامات البيضاء، والمتطلبات المخصصة:
| الميزة | التفاصيل |
|---|---|
| الطلبات في اليوم | مخصص (عادةً 100K+) |
| حدود المعدل | مخصصة |
| دعم مخصص | مشمول |
| SLA | ضمان وقت التشغيل 99.9% |
| تصديرات بيانات مخصصة | متاحة |
| إشعارات Webhook | متاحة لتحديثات البيانات |
| السعر | اتصل بالمبيعات |
تتضمن معلومات حدود المعدل في كل استجابة API عبر كائن meta وفي رؤوس استجابة HTTP (X-RateLimit-Remaining, X-RateLimit-Reset).
حالات الاستخدام الواقعية
تطبيقات اللياقة البدنية والتمارين
إذا كنت تبني تطبيق لياقة وترغب في إضافة تتبع التغذية دون بناء قاعدة بيانات طعام من الصفر، فإن واجهة برمجة تطبيقات Nutrola هي أسرع طريق. استخدم نقاط نهاية بحث الطعام والباركود للسماح للمستخدمين بتسجيل الوجبات، ونقطة نهاية تحليل الوصفات لإدخالات الوجبات المخصصة.
منصات تخطيط الوجبات
تحتاج تطبيقات تخطيط الوجبات إلى بيانات تغذية دقيقة لإنشاء خطط تحقق أهداف ماكرو محددة. يمكّن تحليل العناصر الغذائية المفصل في واجهة برمجة التطبيقات (أكثر من 70 عنصر غذائي) من تحسين خطط الوجبات بدقة، ليس فقط السعرات الحرارية والماكرو ولكن العناصر الدقيقة، والمواد المسببة للحساسية، وتوافق القيود الغذائية.
الرعاية الصحية والتطبيب عن بُعد
يمكن لمنصات الرعاية الصحية التي تراقب تغذية المرضى التكامل مع واجهة برمجة التطبيقات لتوفير تسجيل دقيق للطعام ضمن واجهاتها الحالية. تلبي مصادر البيانات المعتمدة (USDA، EFSA، مباشرة من الشركات المصنعة) معايير الدقة المطلوبة لمراقبة التغذية السريرية.
المطاعم وخدمات الطعام
يمكن لمنصات طلب الطعام استخدام واجهة برمجة التطبيقات لعرض معلومات التغذية لعناصر القائمة. نقطة نهاية تحليل الوصفات مفيدة بشكل خاص هنا — قدم مكونات طبق واحصل على تحليل التغذية الكامل دون الحاجة لحساب كل عنصر يدويًا.
البحث والأكاديميا
يمكن للباحثين في التغذية استخدام واجهة برمجة التطبيقات لتوحيد ترميز الطعام في الدراسات الغذائية. تقلل البيانات المتسقة والمعتمدة من خطأ القياس الذي يعاني منه الدراسات التي تعتمد على بيانات التغذية المبلغ عنها من قبل المشاركين.
أمثلة على الشيفرات
Python: البحث عن طعام والحصول على تفاصيل التغذية
import requests
API_KEY = "ntr_live_your_key_here"
BASE_URL = "https://api.nutrola.com/v1"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
# البحث عن طعام
search_response = requests.get(
f"{BASE_URL}/foods/search",
headers=headers,
params={"q": "صدر دجاج مشوي", "per_page": 3}
)
results = search_response.json()["data"]["results"]
for food in results:
print(f"{food['name']} - {food['nutrition_per_100g']['calories']} cal/100g")
# الحصول على التفاصيل الكاملة لأول نتيجة
food_id = results[0]["id"]
detail_response = requests.get(
f"{BASE_URL}/foods/{food_id}",
headers=headers
)
food_detail = detail_response.json()["data"]
nutrition = food_detail["nutrition_per_100g"]
print(f"\n{food_detail['name']}")
print(f"السعرات الحرارية: {nutrition['calories']}")
print(f"البروتين: {nutrition['protein']}g")
print(f"الكربوهيدرات: {nutrition['carbohydrates']}g")
print(f"الدهون: {nutrition['fat']}g")
print(f"أحجام الحصص: {food_detail['serving_sizes']}")
JavaScript: تكامل مسح الباركود
const API_KEY = "ntr_live_your_key_here";
const BASE_URL = "https://api.nutrola.com/v1";
async function lookupBarcode(barcode) {
const response = await fetch(
`${BASE_URL}/barcodes/${barcode}`,
{
headers: {
"Authorization": `Bearer ${API_KEY}`
}
}
);
if (!response.ok) {
if (response.status === 404) {
console.log("المنتج غير موجود في قاعدة البيانات");
return null;
}
throw new Error(`خطأ في API: ${response.status}`);
}
const data = await response.json();
return data.data;
}
// مثال على الاستخدام
const product = await lookupBarcode("0049000006346");
if (product) {
const serving = product.default_serving;
const factor = serving.grams / 100;
console.log(`${product.name} (${product.brand})`);
console.log(`لكل ${serving.description}:`);
console.log(` السعرات الحرارية: ${Math.round(product.nutrition_per_100g.calories * factor)}`);
console.log(` البروتين: ${(product.nutrition_per_100g.protein * factor).toFixed(1)}g`);
console.log(` الكربوهيدرات: ${(product.nutrition_per_100g.carbohydrates * factor).toFixed(1)}g`);
console.log(` الدهون: ${(product.nutrition_per_100g.fat * factor).toFixed(1)}g`);
}
Swift: بناء حقل بحث بالإكمال التلقائي
import Foundation
class Nutrola API {
private let apiKey: String
private let baseURL = "https://api.nutrola.com/v1"
init(apiKey: String) {
self.apiKey = apiKey
}
func autocomplete(query: String, limit: Int = 5) async throws -> [FoodSuggestion] {
guard query.count >= 2 else { return [] }
var components = URLComponents(string: "\(baseURL)/foods/autocomplete")!
components.queryItems = [
URLQueryItem(name: "q", value: query),
URLQueryItem(name: "limit", value: String(limit))
]
var request = URLRequest(url: components.url!)
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
let (data, _) = try await URLSession.shared.data(for: request)
let response = try JSONDecoder().decode(AutocompleteResponse.self, from: data)
return response.data.suggestions
}
}
struct FoodSuggestion: Codable {
let id: String
let name: String
let brand: String?
let category: String
}
struct AutocompleteResponse: Codable {
let status: String
let data: AutocompleteData
}
struct AutocompleteData: Codable {
let suggestions: [FoodSuggestion]
}
أفضل ممارسات التعامل مع الأخطاء
تستخدم واجهة برمجة التطبيقات رموز الحالة HTTP القياسية:
| رمز الحالة | المعنى | السبب الشائع |
|---|---|---|
| 200 | نجاح | تم إكمال الطلب بشكل طبيعي |
| 400 | طلب غير صحيح | معلمة مطلوبة مفقودة أو قيمة غير صالحة |
| 401 | غير مصرح | مفتاح API غير صالح أو مفقود |
| 403 | محظور | مفتاح API يفتقر إلى النطاق المطلوب |
| 404 | غير موجود | معرف الطعام أو الباركود غير موجود في قاعدة البيانات |
| 429 | معدل محدود | عدد كبير جدًا من الطلبات؛ تحقق من رؤوس حدود المعدل |
| 500 | خطأ في الخادم | خطأ داخلي؛ أعد المحاولة مع زيادة زمن الانتظار |
عند تلقي استجابة 429، يخبرك رأس Retry-After بعدد الثواني التي يجب الانتظار قبل إعادة المحاولة. يُوصى بشدة بتنفيذ زيادة زمن الانتظار للتعامل مع استجابات 429 و500 في التطبيقات الإنتاجية.
تحديثات البيانات وحداثتها
تُحدث قاعدة بيانات Nutrola باستمرار. يتم تحديث إدخالات المنتجات الماركة عندما تبلغ الشركات المصنعة عن تغييرات، عادةً في غضون 48 ساعة. يتم مزامنة إدخالات قاعدة البيانات الحكومية ربع سنويًا عند نشر إصدارات جديدة.
إذا كانت تطبيقك يقوم بتخزين استجابات API (وهو ما نوصي به من أجل الأداء)، نقترح فترة صلاحية ذاكرة التخزين المؤقت تبلغ 24 ساعة لاستجابات تفاصيل الطعام وساعة واحدة لنتائج البحث. يخبرك حقل last_verified في استجابات تفاصيل الطعام بموعد تأكيد الإدخال على دقته.
بالنسبة للعملاء المؤسسيين، نقدم إشعارات Webhook عند تحديث إدخالات الطعام، بحيث يمكن لتطبيقك إبطال البيانات المخزنة مسبقًا بشكل استباقي بدلاً من الانتظار حتى تنتهي فترة صلاحية التخزين المؤقت.
البدء
- سجل في developer.nutrola.com — يستغرق أقل من دقيقة
- أنشئ مفتاح API مع النطاقات التي تحتاجها
- قم بإجراء طلبك الأول باستخدام أمثلة curl أعلاه
- استكشف الوثائق التفاعلية في developer.nutrola.com/docs حيث يمكنك اختبار نقاط النهاية مباشرة في متصفحك
- انضم إلى مجتمع المطورين على خادم Discord الخاص بنا للدعم، وطلبات الميزات، ولرؤية ما يبنيه المطورون الآخرون
إذا كانت لديك أسئلة، أو واجهت مشاكل، أو ترغب في مناقشة تكامل مؤسسي، تواصل مع فريق علاقات المطورين لدينا على api@nutrola.com.
الأسئلة الشائعة
هل واجهة برمجة تطبيقات Nutrola مجانية للاستخدام؟
نعم، هناك مستوى مجاني يتضمن 500 طلب يوميًا. هذا مناسب للتطوير، والاختبار، والتطبيقات الصغيرة. بالنسبة للتطبيقات الإنتاجية ذات الحركة المرورية العالية، يبدأ مستوى النمو بسعر 49 دولارًا شهريًا مع 25,000 طلب يوميًا. تتوفر خطط مؤسسية مع حدود مخصصة لحالات الاستخدام ذات الحركة العالية.
ما هي تنسيقات البيانات التي تدعمها واجهة برمجة التطبيقات؟
تستخدم واجهة برمجة التطبيقات JSON حصريًا لكل من الطلبات والاستجابات. تقبل جميع نقاط النهاية معلمات استعلام قياسية لطلبات GET وأجسام طلب JSON لطلبات POST. ترميز الاستجابة هو UTF-8، مما يعالج أسماء الطعام بشكل صحيح في جميع اللغات المدعومة.
ما مدى دقة بيانات التغذية المقدمة من واجهة برمجة التطبيقات؟
تمر كل إدخال في قاعدة بيانات Nutrola بعملية تحقق متعددة الطبقات تشمل التحقق من المصادر الحكومية، ومراجعة بيانات الشركات المصنعة، والتحقق الإحصائي المدعوم بالذكاء الاصطناعي، ومراجعة الخبراء البشريين. معيار دقتنا هو 97.4% مقارنة بالتحليل المختبري، مقارنة بمتوسط الصناعة الذي يتراوح بين 70-85% لقواعد البيانات المعتمدة على الحشود. تتضمن كل إدخال طعام حقل confidence_score يشير إلى مستوى يقيننا.
هل يمكنني استخدام واجهة برمجة التطبيقات لبناء منتج تجاري؟
نعم. تم تصميم واجهة برمجة التطبيقات للاستخدام التجاري. يمكن استخدام المستوى المجاني للمنتجات التجارية ضمن حدود معدلاته. تشمل خطط النمو والمؤسسات حقوق الاستخدام التجاري دون قيود على نوع التطبيق. راجع شروط الخدمة في developer.nutrola.com لمزيد من التفاصيل.
هل تدعم واجهة برمجة التطبيقات الأطعمة من خارج الولايات المتحدة؟
نعم. تغطي قاعدة البيانات المنتجات الماركة من 47 دولة والأطعمة العامة من أكثر من 120 مطبخًا. استخدم معلمة country على نقاط النهاية للبحث لإعطاء الأولوية للنتائج من سوق معين. تتطابق عمليات البحث بالباركود تلقائيًا مع المنتج إلى التركيبة الإقليمية الصحيحة.
كيف أتعامل مع الأطعمة التي ليست في قاعدة البيانات؟
إذا أعاد البحث بالباركود استجابة 404، يمكنك الرجوع إلى بحث نصي باستخدام اسم المنتج. إذا لم يجد أي من الطريقتين الطعام، يمكنك تقديمه للإضافة من خلال بوابة المطور. تُعطى الأولوية للأطعمة المقدمة من قبل شركاء API للتحقق وعادةً ما تتم إضافتها في غضون 72 ساعة. يمكن للعملاء المؤسسيين طلب إضافات جماعية لكاتالوجات المنتجات الكبيرة.
هل هناك مكتبات SDK أو مكتبات عميل متاحة؟
نقدم مكتبات عميل رسمية لـ Python (عبر pip: pip install nutrola)، وJavaScript/TypeScript (عبر npm: npm install @nutrola/api)، وSwift (عبر Swift Package Manager). تتعامل هذه المكتبات مع المصادقة، وحدود المعدل، وإعادة المحاولة، وتحليل الاستجابة. تتوفر مكتبات مدعومة من المجتمع لـ Go وRuby وPHP.
مستعد لتحويل تتبع تغذيتك؟
انضم إلى الآلاف الذين حولوا رحلتهم الصحية مع Nutrola!