Typy danych dotyczących odżywiania

Interfejs Google Health API udostępnia typy danych do śledzenia spożycia pokarmów i informacji o wartościach odżywczych użytkownika. Te typy umożliwiają rejestrowanie posiłków, odwoływanie się do produktów z bazy danych żywności oraz śledzenie ilości składników odżywczych.

Obsługiwane typy danych

Tabela: typy danych o wartościach odżywczych w interfejsie Google Health API
Typ danych
  dataType
  filter parametr
Typ rekordu
Dostępne
operacje
Zakres Obsługa webhooków
Obsługa prawdziwych zer
Jedzenie
  food
  food
Jedzenie list, get .nutrition.readonly
.nutrition.writeonly
Jednostka miary jedzenia
  food-measurement-unit
  food_measurement_unit
Jedzenie list, get .nutrition.readonly
.nutrition.writeonly
Dziennik odżywiania
  nutrition-log
  nutrition_log
Przykład list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly

Dziennik odżywiania

Dziennik odżywiania reprezentuje jedzenie zarejestrowane przez użytkownika. Istnieją 2 sposoby tworzenia dziennika odżywiania, w zależności od typu jedzenia:

  1. Zidentyfikowane jedzenie: ustaw pole food, aby odwoływać się do istniejącego zasobu Food. Pola nutrients, energy, energyFromFat, totalCarbohydrate, totalFat i foodDisplayName są automatycznie wypełniane na podstawie odwołania do jedzenia. To jest preferowana metoda.

  2. Anonimowe jedzenie: ręcznie ustaw pole foodDisplayName i podaj wartości dla pól nutrients, energy, energyFromFat, totalCarbohydrate i totalFat. Dzienników odżywiania utworzonych na podstawie anonimowego jedzenia nie można edytować po utworzeniu.

Tworzenie dziennika odżywiania z anonimowym jedzeniem

Aby utworzyć wpis logu odżywiania, wyślij żądanie POST do punktu końcowego danych nutrition-log.

Żądanie

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
    }
  }
}

Odpowiedź

{
  "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"
    }
  }
}

Tworzenie dziennika odżywiania ze zidentyfikowanym jedzeniem

Aby zarejestrować produkt z bazy danych żywności, ustaw pole food, aby odwoływać się do zasobu Food. Interfejs API automatycznie wypełnia pola wartości odżywczych.

Żądanie:

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
    }
  }
}

Usuwanie dzienników odżywiania

Aby usunąć co najmniej 1 wpis w dzienniku odżywiania, wyślij żądanie POST do punktu końcowego batchDelete z nazwami zasobów wpisów do usunięcia.

Żądanie:

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"
  ]
}

Pola NutritionLog

Pełną listę pól i ich opisów znajdziesz w dokumentacji.

EnergyQuantity

Reprezentuje pomiar energii w kilokaloriach (kcal). Więcej informacji znajdziesz w sekcji EnergyQuantity.

{
  "kcal": 165
}

WeightQuantity

Reprezentuje pomiar wagi w gramach. Więcej informacji znajdziesz w sekcji WeightQuantity.

{
  "grams": 27.3
}

NutrientQuantity

Reprezentuje konkretny składnik odżywczy i jego zmierzoną ilość. Więcej informacji znajdziesz w sekcji NutrientQuantity.

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

Wartości składników odżywczych

Pełną listę obsługiwanych typów składników odżywczych znajdziesz w sekcji Nutrient.

Serving

Reprezentuje informacje o porcji dla wpisu logu odżywiania. Więcej informacji znajdziesz w sekcji Serving.

{
  "amount": 1.5
}

Wartości MealType

Pełną listę obsługiwanych typów posiłków znajdziesz w sekcji MealType.

Jedzenie

Food to typ danych tylko do odczytu, który reprezentuje produkt spożywczy w bazie danych żywności. Użyj operacji list i get, aby przeglądać dostępne produkty i pobierać informacje o ich wartościach odżywczych.

Wyświetlanie listy produktów

Aby wyświetlić listę produktów, wyślij żądanie GET do punktu końcowego danych food:

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

Jednostka miary jedzenia

Food Measurement Unit to typ danych tylko do odczytu, który reprezentuje jednostki miary używane do porcji jedzenia (np. „szklanka”, „łyżka stołowa” lub „sztuka”).

Wyświetlanie listy dostępnych jednostek miary

Aby wyświetlić listę dostępnych jednostek miary:

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

Wytyczne

  • Jeśli to możliwe, używaj zidentyfikowanego jedzenia. Interfejs API automatycznie wypełnia pola wartości odżywczych, co zmniejsza liczbę błędów i zapewnia spójność z bazą danych żywności.
  • Dzienników odżywiania utworzonych na podstawie anonimowego jedzenia nie można edytować po utworzeniu. Jeśli chcesz poprawić anonimowy dziennik jedzenia, usuń go i utwórz nowy.
  • Wszystkie ilości składników odżywczych w tablicy nutrients są podawane w gramach.
  • Pola energy i energyFromFat używają kilokalorii (kcal) jako jednostki miary.