انواع داده های تغذیه

رابط برنامه‌نویسی کاربردی گوگل هلث (Google Health API) انواع داده‌ای را برای ردیابی میزان مصرف غذا و اطلاعات تغذیه‌ای کاربر ارائه می‌دهد. این نوع داده‌ها به شما امکان می‌دهند وعده‌های غذایی را ثبت کنید، غذاها را از پایگاه داده غذا مرجع قرار دهید و مقادیر مواد مغذی را پیگیری کنید.

انواع داده پشتیبانی شده

جدول: انواع داده‌های تغذیه‌ای API سلامت گوگل
نوع داده
dataType
پارامتر filter
رکورد
نوع
موجود است
عملیات
محدوده وب‌هوک
پشتیبانی
صفرهای واقعی
پشتیبانی
غذا
food
food
غذا فهرست کردن، دریافت کردن .nutrition.readonly
.nutrition.writeonly
واحد اندازه‌گیری غذا
food-measurement-unit
food_measurement_unit
غذا فهرست کردن، دریافت کردن .nutrition.readonly
.nutrition.writeonly
گزارش تغذیه
nutrition-log
nutrition_log
نمونه فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .nutrition.readonly
.nutrition.writeonly

گزارش تغذیه

یک گزارش تغذیه، نشان دهنده غذاهایی است که توسط کاربر ثبت شده است. بسته به نوع غذا، دو راه برای ایجاد گزارش تغذیه وجود دارد:

  1. غذای شناسایی‌شده : فیلد food را طوری تنظیم کنید که به یک منبع غذایی موجود ارجاع دهد. فیلدهای nutrients ، energy ، energyFromFat ، totalCarbohydrate ، totalFat و foodDisplayName به طور خودکار از غذای ارجاع‌شده پر می‌شوند. این روش ترجیحی است.

  2. غذای ناشناس : فیلد foodDisplayName را به صورت دستی تنظیم کنید و مقادیر مربوط به nutrients ، energy ، energyFromFat ، totalCarbohydrate و totalFat را ارائه دهید. گزارش‌های تغذیه‌ای ایجاد شده از غذای ناشناس پس از ایجاد قابل ویرایش نیستند.

با استفاده از غذاهای ناشناس، یک گزارش تغذیه ایجاد کنید

برای ایجاد یک ورودی لاگ تغذیه، یک درخواست POST به نقطه پایانی نقاط داده nutrition-log ارسال کنید.

درخواست

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "nutritionLog": {
    "interval": {
      "startTime": "2026-06-16T18:00:00Z",
      "endTime": "2026-06-16T18:30:00Z"
    },
    "foodDisplayName": "Grilled Chicken Breast",
    "mealType": "DINNER",
    "energy": {
      "kcal": 165
    },
    "totalCarbohydrate": {
      "grams": 0
    },
    "totalFat": {
      "grams": 3.6
    },
    "nutrients": [
      {
        "nutrient": "PROTEIN",
        "quantity": {
          "grams": 31
        }
      },
      {
        "nutrient": "SODIUM",
        "quantity": {
          "grams": 0.074
        }
      }
    ],
    "serving": {
      "amount": 1.0
    }
  }
}

پاسخ

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/nutrition-log/dataPoints/data-point-id",
    "dataSource": {
      "recordingMethod": "UNKNOWN",
      "application": {
        "googleWebClientId": "google-web-client-id"
      },
      "platform": "GOOGLE_WEB_API"
    },
    "nutritionLog": {
      "interval": {
        "startTime": "2026-06-16T18:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T18:30:00Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 18
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 18,
            "minutes": 30
          }
        }
      },
      "energy": {
        "kcal": 165
      },
      "totalCarbohydrate": {
        "grams": 0
      },
      "totalFat": {
        "grams": 3.6
      },
      "nutrients": [
        {
          "quantity": {
            "grams": 31
          },
          "nutrient": "PROTEIN"
        },
        {
          "quantity": {
            "grams": 0.074
          },
          "nutrient": "SODIUM"
        }
      ],
      "mealType": "DINNER",
      "serving": {
        "amount": 1
      },
      "foodDisplayName": "Grilled Chicken Breast"
    }
  }
}

یک گزارش تغذیه با غذاهای مشخص ایجاد کنید

برای ثبت یک ماده غذایی از پایگاه داده غذا، فیلد food را طوری تنظیم کنید که به یک منبع غذایی ارجاع دهد. API به طور خودکار فیلدهای تغذیه‌ای را پر می‌کند.

درخواست:

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "nutritionLog": {
    "interval": {
      "startTime": "2026-06-16T12:00:00Z",
      "endTime": "2026-06-16T12:30:00Z"
    },
    "food": "users/me/dataTypes/food/dataPoints/food-id",
    "mealType": "LUNCH",
    "serving": {
      "amount": 1.0
    }
  }
}

حذف گزارش‌های تغذیه‌ای

برای حذف یک یا چند ورودی لاگ تغذیه، یک درخواست POST به نقطه پایانی batchDelete به همراه نام منابع ورودی‌هایی که باید حذف شوند، ارسال کنید.

درخواست:

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json

{
  "names": [
    "users/me/dataTypes/nutrition-log/dataPoints/data-point-id"
  ]
}

فیلدهای ثبت تغذیه

برای مشاهده لیست کامل فیلدها و توضیحات، به مستندات مرجع مراجعه کنید.

مقدار انرژی

نشان‌دهنده‌ی واحد اندازه‌گیری انرژی است که بر حسب کیلوکالری ( kcal ) اندازه‌گیری می‌شود. برای جزئیات بیشتر، به بخش «مقدار انرژی» مراجعه کنید.

{
  "kcal": 165
}

وزنمقدار

نشان‌دهنده‌ی واحد وزن است که بر حسب گرم اندازه‌گیری می‌شود. برای جزئیات بیشتر، به WeightQuantity مراجعه کنید.

{
  "grams": 27.3
}

مقدار مواد مغذی

نشان دهنده یک ماده مغذی خاص و مقدار اندازه‌گیری شده آن است. برای جزئیات بیشتر، به بخش «مقدار مواد مغذی» مراجعه کنید.

{
  "nutrient": "PROTEIN",
  "quantity": {
    "grams": 31
  }
}

مقادیر مواد مغذی

برای فهرست کاملی از انواع مواد مغذی پشتیبانی‌شده، به بخش مواد مغذی مراجعه کنید.

خدمت رسانی

اطلاعات مربوط به وعده غذایی را برای ورودی گزارش تغذیه نشان می‌دهد. برای جزئیات بیشتر، به بخش «وعده غذایی» مراجعه کنید.

{
  "amount": 1.5
}

مقادیر نوع غذا (MealType)

برای فهرست کاملی از انواع وعده‌های غذایی پشتیبانی‌شده، به MealType مراجعه کنید.

غذا

غذا یک نوع داده فقط خواندنی است که یک ماده غذایی را در پایگاه داده غذا نشان می‌دهد. از عملیات list و get برای مرور غذاهای موجود و بازیابی اطلاعات تغذیه‌ای آنها استفاده کنید.

فهرست کردن غذاها

برای فهرست کردن غذاها، یک درخواست GET به نقطه پایانی نقاط داده food ارسال کنید:

GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints
Authorization: Bearer access-token
Accept: application/json

واحد اندازه‌گیری غذا

واحد اندازه‌گیری غذا یک نوع داده فقط خواندنی است که واحدهای اندازه‌گیری مورد استفاده برای وعده‌های غذایی (مثلاً "فنجان"، "قاشق غذاخوری" یا "تکه") را نشان می‌دهد.

فهرست واحدهای اندازه‌گیری موجود

برای فهرست کردن واحدهای اندازه‌گیری موجود:

GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints
Authorization: Bearer access-token
Accept: application/json

دستورالعمل‌ها

  • در صورت امکان از مواد غذایی شناسایی‌شده استفاده کنید. API به طور خودکار فیلدهای تغذیه‌ای را پر می‌کند، خطاها را کاهش می‌دهد و سازگاری با پایگاه داده مواد غذایی را تضمین می‌کند.
  • گزارش‌های تغذیه‌ای ایجاد شده از غذاهای ناشناس پس از ایجاد قابل به‌روزرسانی نیستند. اگر نیاز به اصلاح یک گزارش غذای ناشناس دارید، آن را حذف کرده و یک گزارش جدید ایجاد کنید.
  • تمام مقادیر مواد مغذی در آرایه nutrients از گرم به عنوان واحد اندازه‌گیری استفاده می‌کنند.
  • فیلدهای energy و energyFromFat از کیلوکالری ( kcal ) به عنوان واحد اندازه‌گیری استفاده می‌کنند.