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

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

Таблица: Типы данных API Google Health
Тип данных
dataType
параметр filter
Доступный
операции
Объем
Сожженная активная энергия
список, сверка, свертка, ежедневная сводка .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
Высота
список, сверка, свертка, ежедневная сводка .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
Полы
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 для согласования разницы во времени. Она автоматически привязывает данные к календарному дню, в который они были записаны, в соответствии с местным временем пользователя, эффективно «сшивая» данные за день, несмотря на сдвиги во времени.