Типы данных API Google Health

В следующей таблице представлен полный список типов данных, с несколькими столбцами, которые помогут вам понять представление каждого типа в API Google Health, а также область его доступности.

Таблица: Типы данных API Google Health
Тип данных
dataType
параметр filter
Записывать
тип
Доступный
операции
Объем Вебхук
поддерживать
Истинные нули
поддерживать
Сожженная активная энергия
active-energy-burned
active_energy_burned
Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Активные минуты
active-minutes
active_minutes

Совместимые устройства

Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Минуты активной зоны
active-zone-minutes
active_zone_minutes

Совместимые устройства

Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Уровень активности
activity-level
activity_level
Интервал список, согласовать .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Высота
altitude
altitude
Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Уровень глюкозы в крови
blood-glucose
blood_glucose
Образец список, получить, согласовать, свернуть, ежедневный свертывание .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Жировая масса тела
body-fat
body_fat

Совместимые устройства

Образец список, получить, согласовать, свернуть, ежедневный свертывание, создать, обновить, пакетное удаление .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Калории в зоне частоты сердечных сокращений
calories-in-heart-rate-zone
calories_in_heart_rate_zone
Интервал rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Температура тела
core-body-temperature
core_body_temperature
Образец список, получить, согласовать, свернуть, ежедневный свертывание .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Суточная вариабельность сердечного ритма
daily-heart-rate-variability
daily_heart_rate_variability

Совместимые устройства

Ежедневно список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Ежедневные зоны частоты сердечных сокращений
daily-heart-rate-zones
daily_heart_rate_zones
Ежедневно список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Суточная сатурация кислорода
daily-oxygen-saturation
daily_oxygen_saturation

Совместимые устройства

Ежедневно список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Суточная частота дыхания
daily-respiratory-rate
daily_respiratory_rate

Совместимые устройства

Ежедневно список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Ежедневная частота сердечных сокращений в состоянии покоя
daily-resting-heart-rate
daily_resting_heart_rate

Совместимые устройства

Ежедневно список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Ежедневные измерения температуры во время сна
daily-sleep-temperature-derivations
daily_sleep_temperature_derivations

Совместимые устройства

Ежедневно список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Ежедневный VO2 Max
daily-vo2-max
daily_vo2_max

Совместимые устройства

Ежедневно список, согласовать .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Расстояние
distance
distance

Совместимые устройства

Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Электрокардиограмма (ЭКГ)
electrocardiogram
electrocardiogram

Совместимые устройства

Сессия список .ecg.readonly
Упражнение
exercise
exercise

Совместимые устройства

Сессия список, получить, согласовать, создать, обновить, пакетное удаление .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Полы
floors
floors
Интервал reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Еда
food
food
Еда список, получить .nutrition.readonly
.nutrition.writeonly
Измерительный прибор для пищевых продуктов
food-measurement-unit
food_measurement_unit

Совместимые устройства

Еда список, получить .nutrition.readonly
.nutrition.writeonly
Частота сердечных сокращений
heart-rate
heart_rate

Совместимые устройства

Образец список, сверка, свертка, ежедневная сводка .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Вариабельность сердечного ритма
heart-rate-variability
heart_rate_variability

Совместимые устройства

Образец список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Высота
height
height
Образец список, получить, согласовать, создать, обновить, пакетное удаление .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Журнал учета потребления жидкости
hydration-log
hydration_log
Сессия список, получить, согласовать, свернуть, ежедневный свертывание, создать, обновить, пакетное удаление .nutrition.readonly
.nutrition.writeonly
Уведомление о нарушении ритма
irregular-rhythm-notification
irregular_rhythm_notification
Сессия список .irn.readonly
Менструация
menstrual-period
menstrual_period
Интервал создать, обновить, удалить пакетом .reproductive_health.writeonly
Настроения
moods
moods
Образец создать, обновить, удалить пакетом .mindfulness.writeonly
Журнал учета пищевых продуктов
nutrition-log
nutrition_log

Совместимые устройства

Образец список, получить, согласовать, свернуть, ежедневный свертывание, создать, обновить, пакетное удаление .nutrition.readonly
.nutrition.writeonly
Тест на овуляцию
ovulation-test
ovulation_test
Образец создать, обновить, удалить пакетом .reproductive_health.writeonly
Насыщение кислородом
oxygen-saturation
oxygen_saturation

Совместимые устройства

Образец список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Сводка по частоте дыхания во сне
respiratory-rate-sleep-summary
respiratory_rate_sleep_summary

Совместимые устройства

Образец список, согласовать .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Бег VO2 Max
run-vo2-max
run_vo2_max

Совместимые устройства

Образец список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Сидячий период
sedentary-period
sedentary_period

Совместимые устройства

Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Спать
sleep
sleep

Совместимые устройства

Сессия список, получить, согласовать, создать, обновить, пакетное удаление .sleep.readonly
.sleep.writeonly
Шаги
steps
steps

Совместимые устройства

Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Данные о длине заплывов
swim-lengths-data
swim_lengths_data

Совместимые устройства

Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Симптомы
symptoms
symptoms
Образец создать, обновить, удалить пакетом .logged_symptoms.writeonly
Время в зоне частоты сердечных сокращений
time-in-heart-rate-zone
time_in_heart_rate_zone
Интервал список, сверка, свертка, ежедневная сводка .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Общее количество калорий
total-calories
total_calories

Совместимые устройства

Интервал rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
VO2 Max
vo2-max
vo2_max

Совместимые устройства

Образец список, согласовать .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Масса
weight
weight

Совместимые устройства

Образец список, получить, согласовать, свернуть, ежедневный свертывание, создать, обновить, пакетное удаление .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

Ограничения запроса

При запросе данных, сводных отчетов или ежедневных сводок через API следует учитывать следующие ограничения:

  • Требования к фильтру: Для некоторых производных типов данных, доступных только для чтения, таких как total-calories , требуется фильтр, указывающий время начала интервала (с использованием физического или гражданского времени).
  • Ограничения диапазона запросов: Конечные точки агрегирования сводных и ежедневных сводных данных устанавливают максимальные ограничения диапазона запросов в зависимости от типа данных:
    • Максимальный диапазон запросов для calories-in-heart-rate-zone , heart-rate , active-minutes и total-calories составляет 14 дней.
    • Для всех остальных типов данных максимальный диапазон запросов составляет 90 дней.

Доступность данных

Обновление данных пользователя доступно только после синхронизации трекера активности или ручного ввода новых данных в мобильное или веб-приложение Fitbit. Устройство Fitbit и мобильное приложение Fitbit могут автоматически синхронизироваться каждые 15 минут, когда приложение Fitbit открыто на мобильном устройстве, и оба устройства имеют активное соединение для передачи данных и находятся в зоне действия Bluetooth. Если пользователь отслеживает активность с помощью MobileTrack, MobileTrack синхронизируется каждый час, пока приложение открыто.

Запрос исторических данных

Одно из главных преимуществ API Google Health — возможность отслеживать производительность пользователя и контролировать показатели его здоровья в течение длительных периодов времени. Вы можете запрашивать данные пользователя за весь период, с момента их записи; API не накладывает никаких ограничений на объем исторических данных, которые может обрабатывать ваше приложение.

Однако запросы к историческим данным по-прежнему регулируются стандартными ограничениями скорости . Для обеспечения стабильности системы и предотвращения чрезмерной нагрузки API Google Health использует автоматическую пагинацию с размерами страниц, специфичными для каждой конечной точки. Обратите внимание на следующие ограничения и поведение:

  • Автоматическая пагинация: если вы запрашиваете большой объем данных, API вернет только первую страницу результатов, не превышающую лимит размера страницы для данной конечной точки, вместе с токеном nextPageToken . Для запроса последующих страниц необходимо использовать nextPageToken .
  • Размер страниц может варьироваться: ограничения зависят от конечной точки и типа данных. Для большинства типов данных размер страниц ограничен максимум 10 000. Однако для некоторых типов данных, таких как exercise и sleep , размер страницы по умолчанию ограничен 25. Например, если клиент запрашивает все данные о сне за последние 10 лет, API все равно вернет только 25 сеансов сна на первой странице.
  • Ограничения по диапазону дат для сводных данных: Для конечных точек сводных и агрегированных данных (таких как rollUp и dailyRollUp ) диапазоны дат запросов ограничены в зависимости от типа данных:
    • Максимальный диапазон в 14 дней для calories-in-heart-rate-zone , heart-rate , active-minutes и total-calories .
    • Для всех остальных типов сводных данных максимальный диапазон составляет 90 дней.

В зависимости от объема исторических данных, необходимых вашему приложению, для получения всего набора данных потребуется постраничная навигация. Учитывайте это при проектировании процесса синхронизации данных в вашем приложении.

Для обеспечения оптимальной производительности и во избежание ошибок API следуйте этим рекомендациям при запросе исторических данных:

Поэтапная синхронизация данных (горячая и холодная загрузка)

  • Первоначальная «горячая» загрузка: во время основной последовательности загрузки загружаются и отображаются только данные за последние 7–14 дней. Это гарантирует, что пользователи увидят данные немедленно, без ожидания завершения длительных запросов.
  • Фоновая «холодная» загрузка: после отрисовки основного пользовательского интерфейса перенаправьте получение более старых исторических данных в асинхронную очередь с более низким приоритетом или фоновый процесс.

Разбиение запросов на фрагменты для агрегирования

  • Поскольку конечные точки для агрегирования и ежедневного агрегирования устанавливают ограничение на максимальный диапазон дат (14 или 90 дней в зависимости от типа данных), необходимо разбивать большие запросы на агрегирование исторических данных на более мелкие последовательные интервалы в пределах этих ограничений.
  • Безопасно объединяйте или упорядочивайте эти подзапросы, чтобы соблюдать ограничения на параллельное выполнение и поддерживать стабильные индикаторы выполнения пользовательского интерфейса.

Используйте предварительно агрегированные сводные данные.

Реструктурируйте обзорные панели мониторинга и графики трендов, используя предварительно агрегированные сводные данные (например, DailyRollUpDataPoints ). Это значительно снизит вычислительную нагрузку на бэкэнд и время передачи данных по сети клиенту.

Устойчивая обработка ошибок (интеллектуальные повторные попытки)

  • Внедрите строгую экспоненциальную обработку при столкновении с ограничениями скорости ( 429 Too Many Requests ) и таймаутами шлюза сервера ( 504 Gateway Timeout ). Никогда не повторяйте сразу большие, неудачно завершившиеся запросы. Мгновенные повторные попытки увеличивают перегрузку бэкэнда и усугубляют деградацию системы.

Доступ третьих лиц

Устройства Fitbit не могут напрямую взаимодействовать со сторонними приложениями или сервисами. Эти устройства предназначены для связи и синхронизации исключительно с мобильным приложением Fitbit.

Устройство автоматически синхронизирует данные в течение дня, когда открыто приложение Fitbit, или каждые 15 минут, если Bluetooth активен и приложение работает в фоновом режиме. После завершения процесса синхронизации данные становятся доступны сторонним сервисам через API Google Health.

стандарты расстояния

Дистанция, измеряемая во время упражнений, например, elevationGainMillimeters в миллиметрах, стандартной единицей измерения является миллиметр по следующим причинам:

  1. Сохранение точности данных : Главная причина использования миллиметров — это обеспечение точности считываемых и предоставляемых данных. Использование такой точной единицы, как миллиметры, позволяет представлять измерения с высокой точностью.
  2. Стандартизация : Миллиметры — это стандартизированная единица измерения, используемая во всех наших сервисах. Такая согласованность помогает обеспечить единообразие взаимодействия разработчиков с различными частями API.
  3. Широкая поддержка систем измерения : использование базовой единицы, такой как миллиметры, упрощает разработчикам преобразование в любую другую выбранную единицу, независимо от того, работают ли они с метрической, имперской или другими системами измерения.

Переменная продолжительность светового дня

API Health обрабатывает время, отдавая приоритет времени пользователя, чтобы учесть переменную продолжительность дня, вызванную переходом на летнее время или поездками. Каждая точка данных хранится как с физической меткой времени UTC, так и с активным смещением UTC на момент события. Это позволяет системе:

  • Сопоставьте событие с точным физическим моментом времени.
  • Для агрегирования данных необходимо скорректировать время в соответствии с локальным контекстом пользователя.

Переход на летнее время

При переходе на летнее время происходит «перевод назад», в результате чего гражданские сутки становятся 25-часовыми, и сводная таблица за эту дату будет содержать 25 часов данных. При переводе назад, в результате, гражданские сутки становятся 23-часовыми, и время возвращается к стандартному времени.

Путешествовать

Перемещение через часовые пояса может привести к еще более значительным колебаниям физической продолжительности одного и того же гражданского дня.

Используйте конечную точку dailyRollUp для согласования разницы во времени. Она автоматически привязывает данные к календарному дню, в который они были записаны, в соответствии с местным временем пользователя, эффективно «сшивая» данные за день, несмотря на сдвиги во времени.