Google Health API के डेटा टाइप

यहां दी गई टेबल में, डेटा टाइप की पूरी सूची दी गई है. इसमें कई कॉलम दिए गए हैं, ताकि आपको Google Health API में हर टाइप के बारे में समझने में मदद मिल सके. साथ ही, यह भी बताया गया है कि हर टाइप किस स्कोप के तहत उपलब्ध है.

डेटा टाइप फ़ील्ड

Google Health API के डेटा टाइप की टेबल में, कई फ़ील्ड कॉलम शामिल होते हैं. इनसे आपको हर डेटा टाइप के बारे में समझने में मदद मिलती है. ये कॉलम इस तरह से होते हैं:

टेबल: Google Health API के डेटा टाइप फ़ील्ड के बारे में जानकारी
फ़ील्ड ब्यौरा
dataType एंडपॉइंट यूआरएल में इस्तेमाल किया गया आइडेंटिफ़ायर, जिसे हाइफ़न से अलग किया गया है. उदाहरण के लिए, active-minutes.
filter पैरामीटर अंडरस्कोर से अलग किया गया आइडेंटिफ़ायर (उदाहरण के लिए, active_minutes). इसका इस्तेमाल, हर दिन के रोलअप और रोलअप अनुरोधों में dataType फ़िल्टर पैरामीटर की वैल्यू के तौर पर किया जाता है.
रिकॉर्ड टाइप

इससे रिकॉर्ड किए गए डेटा के स्ट्रक्चर और फ़ॉर्मैट के बारे में पता चलता है. यह डेटा पॉइंट के रिसॉर्स प्रज़ेंटेशन के साथ अलाइन होता है. इन वैल्यू का इस्तेमाल किया जा सकता है:

  • Interval (इससे किसी अवधि के दौरान रिकॉर्ड किए गए मेज़रमेंट के बारे में पता चलता है.)
  • Sample (इससे तुरंत मेज़रमेंट का पता चलता है.)
  • Daily (इससे हर दिन इकट्ठा किए गए या रिकॉर्ड किए गए मेज़रमेंट का पता चलता है.)
  • Session (यह रिकॉर्डिंग के लगातार ब्लॉक को दिखाता है. जैसे, कसरत या इलेक्ट्रोकार्डियोग्राम (ईसीजी) सेशन.)
  • Food (यह खाने की किसी चीज़ या पोषण से जुड़े डेटा इकाई को दिखाता है.)
उपलब्ध कार्रवाइयां इस फ़ील्ड में, डेटा टाइप के लिए काम करने वाले एपीआई के तरीकों की सूची दी जाती है. जैसे, list, create, और rollUp.
स्कोप डेटा टाइप को ऐक्सेस करने के लिए ज़रूरी OAuth स्कोप.
वेबबुक की सुविधा इससे पता चलता है कि जब नया डेटा सिंक होता है, तब वेबहुक का इस्तेमाल करके, डेटा टाइप रीयल-टाइम सूचनाएं पाने की सुविधा देता है.
ट्रू ज़ीरो की सुविधा इससे पता चलता है कि डेटा टाइप, शून्य वैल्यू को रिकॉर्ड करने की सुविधा देता है. इससे, ऐक्टिव ज़ोन मिनट जैसे ऐक्टिव ज़ोन की शून्य वैल्यू और मौजूद न होने या रिकॉर्ड न किए गए डेटा के बीच अंतर किया जा सकता है.
स्टोरेज रिज़ॉल्यूशन डेटा पॉइंट को सेव करने के लिए, कम से कम रिकॉर्डिंग या सैंपलिंग इंटरवल. उदाहरण के लिए, steps के लिए 1 मिनट. रोलअप के लिए, यह कम से कम windowSize का सुझाव देता है, ताकि सब-इंटरवल डेटा आर्टफ़ैक्ट के बिना, एग्रीगेशन को समान रूप से डिस्ट्रिब्यूट किया जा सके.
इस सुविधा के साथ काम करने वाले डिवाइस फ़िजिकल डिवाइसों की एक बड़ी सूची. ये डिवाइस, इस डेटा टाइप को Google Health API में रिकॉर्ड और सिंक कर सकते हैं. इसके लिए, Fitbit ऐप्लिकेशन का इस्तेमाल किया जाता है.

टेबल: Google Health API के डेटा टाइप
डेटा टाइप उपलब्ध
ऑपरेशन
दायरा
ऐक्टिव रहने के दौरान बर्न की गई कैलोरी
dataType: active-energy-burned
filter parameter: active_energy_burned
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ऐक्टिव मिनट
dataType: active-minutes
filter parameter: active_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट

संगत डिवाइस

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Flex 2
  • Fitbit Inspire
  • Fitbit Inspire HR
  • Pixel Watch 4
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ऐक्टिव ज़ोन मिनट
dataType: active-zone-minutes
filter parameter: active_zone_minutes
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
गतिविधि का लेवल
dataType: activity-level
filter parameter: activity_level
रिकॉर्ड टाइप: इंटरवल
सूची, मेल-मिलाएं .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ऊंचाई
dataType: altitude
filter parameter: altitude
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ब्लड ग्लूकोज़
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
बॉडी फ़ैट
dataType: body-fat
filter parameter: body_fat
रिकॉर्ड टाइप: Sample

संगत डिवाइस

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर वाले ज़ोन में खर्च की गई कैलोरी
dataType: calories-in-heart-rate-zone
filter parameter: calories_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
शरीर का तापमान
dataType: core-body-temperature
filter parameter: core_body_temperature
रिकॉर्ड टाइप: Sample
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर में रोज़ाना होने वाला उतार-चढ़ाव
dataType: daily-heart-rate-variability
filter parameter: daily_heart_rate_variability
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर वाले ज़ोन की रोज़ की जानकारी
सूची, मेल-मिलाएं .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ऑक्सीजन की रोज़ाना की मात्रा
dataType: daily-oxygen-saturation
filter parameter: daily_oxygen_saturation
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
सांस की रोज़ाना की दर
dataType: daily-respiratory-rate
filter parameter: daily_respiratory_rate
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची, मेल-मिलाएं .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
आराम करते समय रोज़ की धड़कन की दर
dataType: daily-resting-heart-rate
filter parameter: daily_resting_heart_rate
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची, मेल-मिलाएं .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
रोज़ाना के हिसाब से नींद के दौरान शरीर के तापमान में होने वाले बदलाव की जानकारी
dataType: daily-sleep-temperature-derivations
filter parameter: daily_sleep_temperature_derivations
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
गतिविधि के दौरान सांस लेने की दर का हर दिन का स्टेटस
dataType: daily-vo2-max
filter parameter: daily_vo2_max
रिकॉर्ड टाइप: हर दिन

संगत डिवाइस

सूची, मिलान करें .activity_and_fitness.readonly
.activity_and_fitness.writeonly
दूरी
dataType: distance
filter parameter: distance
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
इलेक्ट्रोकार्डियोग्राम (ईसीजी)
dataType: electrocardiogram
filter parameter: electrocardiogram
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

सूची .ecg.readonly
एक्सरसाइज़
dataType: exercise
filter parameter: exercise
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
फ़्लोर
dataType: floors
filter parameter: floors
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट
reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
खाना
dataType: food
filter parameter: food
रिकॉर्ड टाइप: खाना
सूची, पाएं .nutrition.readonly
.nutrition.writeonly
खाने-पीने की चीज़ों के मेज़रमेंट की यूनिट
dataType: food-measurement-unit
filter parameter: food_measurement_unit
रिकॉर्ड टाइप: खाना

संगत डिवाइस

सूची बनाना, पाना .nutrition.readonly
.nutrition.writeonly
धड़कन की दर
dataType: heart-rate
filter parameter: heart_rate
रिकॉर्ड टाइप: Sample
स्टोरेज रिज़ॉल्यूशन: 1 सेकंड (1s)

संगत डिवाइस

list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
धड़कन की दर में उतार-चढ़ाव
dataType: heart-rate-variability
filter parameter: heart_rate_variability
रिकॉर्ड टाइप: Sample

संगत डिवाइस

सूची, मेल-मिलाएं .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ऊंचाई
dataType: height
filter parameter: height
रिकॉर्ड टाइप: Sample
list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
हाइड्रेशन का लॉग
dataType: hydration-log
filter parameter: hydration_log
रिकॉर्ड टाइप: सेशन
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
दिल की धड़कन अनियमित होने पर मिलने वाली सूचनाएं
dataType: irregular-rhythm-notification
filter parameter: irregular_rhythm_notification
रिकॉर्ड टाइप: सेशन
सूची .irn.readonly
माहवारी का समय
dataType: menstrual-period
filter parameter: menstrual_period
रिकॉर्ड टाइप: इंटरवल
create, update, batchDelete .reproductive_health.writeonly
मूड
dataType: moods
filter parameter: moods
रिकॉर्ड टाइप: Sample
create, update, batchDelete .mindfulness.writeonly
पोषण से जुड़ा डेटा लॉग करें
dataType: nutrition-log
filter parameter: nutrition_log
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
ऑव्युलेशन टेस्ट
dataType: ovulation-test
filter parameter: ovulation_test
रिकॉर्ड टाइप: Sample
create, update, batchDelete .reproductive_health.writeonly
ऑक्सीजन की मात्रा
dataType: oxygen-saturation
filter parameter: oxygen_saturation
रिकॉर्ड टाइप: Sample

संगत डिवाइस

सूची, मिलान करें .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
नींद के दौरान सांस लेने की दर की खास जानकारी
dataType: respiratory-rate-sleep-summary
filter parameter: respiratory_rate_sleep_summary
रिकॉर्ड टाइप: Sample

संगत डिवाइस

सूची, मेल-मिलाएं .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
दौड़ने के दौरान ली गई ज़्यादा से ज़्यादा ऑक्सीजन
dataType: run-vo2-max
filter parameter: run_vo2_max
रिकॉर्ड टाइप: Sample

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
एक ही जगह पर बैठे या लेटे रहने की अवधि
dataType: sedentary-period
filter parameter: sedentary_period
रिकॉर्ड टाइप: इंटरवल

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
नींद
dataType: sleep
filter parameter: sleep
रिकॉर्ड टाइप: सेशन

संगत डिवाइस

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
तरीका
dataType: steps
filter parameter: steps
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
स्विम लेंथ का डेटा
dataType: swim-lengths-data
filter parameter: swim_lengths_data
रिकॉर्ड टाइप: इंटरवल

संगत डिवाइस

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
लक्षण
dataType: symptoms
filter parameter: symptoms
रिकॉर्ड टाइप: Sample
create, update, batchDelete .logged_symptoms.writeonly
धड़कन की दर वाले ज़ोन में बिताया गया समय
dataType: time-in-heart-rate-zone
filter parameter: time_in_heart_rate_zone
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
कुल कैलोरी
dataType: total-calories
filter parameter: total_calories
रिकॉर्ड टाइप: इंटरवल
स्टोरेज की जानकारी अपडेट होने में लगने वाला समय: एक मिनट

संगत डिवाइस

rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
VO2 मैक्स
dataType: vo2-max
filter parameter: vo2_max
रिकॉर्ड टाइप: Sample

संगत डिवाइस

सूची, मिलान करें .activity_and_fitness.readonly
.activity_and_fitness.writeonly
वज़न
dataType: weight
filter parameter: weight
रिकॉर्ड टाइप: Sample

संगत डिवाइस

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

क्वेरी से जुड़ी शर्तें

एपीआई से डेटा पॉइंट, रोलअप या रोज़ के रोलअप के बारे में क्वेरी करते समय, इन बातों का ध्यान रखें:

  • फ़िल्टर से जुड़ी ज़रूरी शर्तें: सिर्फ़ पढ़ने के लिए उपलब्ध कुछ डिराइव किए गए डेटा टाइप, जैसे कि total-calories के लिए, ऐसे फ़िल्टर की ज़रूरत होती है जो इंटरवल के शुरू होने का समय बताता हो. इसके लिए, फ़िज़िकल या सिविल टाइम का इस्तेमाल किया जाता है.
  • क्वेरी रेंज की सीमाएं: रोलअप और रोज़ के रोलअप एग्रीगेशन एंडपॉइंट, डेटा टाइप के आधार पर क्वेरी रेंज की ज़्यादा से ज़्यादा सीमाएं लागू करते हैं:
    • calories-in-heart-rate-zone, heart-rate, active-minutes, और total-calories के लिए, क्वेरी की ज़्यादा से ज़्यादा रेंज 14 दिन होनी चाहिए.
    • अन्य सभी डेटा टाइप के लिए, क्वेरी की ज़्यादा से ज़्यादा सीमा 90 दिन होती है.
  • रोलअप विंडो का साइज़: rollUp एंडपॉइंट को कॉल करते समय, windowSize की अवधि कम से कम एक सेकंड ("1s") होनी चाहिए. एक सेकंड से कम अवधि वाले रोलअप को INVALID_ARGUMENT के साथ अस्वीकार कर दिया जाता है. इसके अलावा, डेटा टाइप के स्टोरेज रिज़ॉल्यूशन के बराबर या उससे ज़्यादा windowSize चुनें. जैसे, steps और distance जैसे एक मिनट के इंटरवल वाले डेटा टाइप के लिए "60s". इससे सब-इंटरवल में डेटा का डिस्ट्रिब्यूशन एक जैसा रहेगा. ज़्यादा जानकारी के लिए, रोलअप विंडो का साइज़ और स्टोरेज की बुनियादी सेटिंग लेख पढ़ें.

रोज़ाना बनाम इंटरवल के हिसाब से डेटा टाइप

कुछ फ़िज़ियोलॉजिकल मेट्रिक, जैसे कि धड़कन की दर में उतार-चढ़ाव (एचआरवी) या ऑक्सीजन की मात्रा (एसपीओ2) के लिए, Google Health API दो अलग-अलग तरह का डेटा उपलब्ध कराता है: रोज़ाना का वर्शन और इंटरवल का वर्शन. इनके बीच के अंतर को समझना ज़रूरी है, ताकि अपने इस्तेमाल के उदाहरण के लिए सही मेट्रिक चुनी जा सके:

  • हर दिन: पूरे दिन के लिए, पहले से एग्रीगेट की गई एक समरी. प्रोसेसिंग में लगने वाले समय को कम करने के लिए, इस सुविधा का इस्तेमाल करें. इससे आपको बड़े लेवल के रुझान और रोज़ाना के डैशबोर्ड देखने में मदद मिलेगी.

  • इंटरवल: पूरे दिन के दौरान, ज़्यादा जानकारी और हाई रिज़ॉल्यूशन में मेज़रमेंट लिए जाते हैं. इसका इस्तेमाल, दिन के दौरान होने वाले उतार-चढ़ाव को चार्ट में दिखाने या हर घंटे के हिसाब से बारीकी से विश्लेषण करने के लिए करें.

डेटा की उपलब्धता

उपयोगकर्ता के डेटा में अपडेट सिर्फ़ तब उपलब्ध होते हैं, जब वह गतिविधि ट्रैकर को सिंक करता है या Fitbit का मोबाइल ऐप्लिकेशन या वेब ऐप्लिकेशन में मैन्युअल तरीके से नया डेटा डालता है. Fitbit डिवाइस और Fitbit ऐप्लिकेशन, हर 15 मिनट में अपने-आप सिंक हो सकते हैं. इसके लिए, Fitbit ऐप्लिकेशन का मोबाइल डिवाइस पर खुला होना ज़रूरी है. साथ ही, दोनों के बीच डेटा कनेक्शन चालू होना चाहिए और वे ब्लूटूथ की रेंज में होने चाहिए. अगर उपयोगकर्ता MobileTrack का इस्तेमाल करके गतिविधि ट्रैक कर रहा है, तो ऐप्लिकेशन खुला होने पर MobileTrack हर घंटे सिंक होता है.

पुराने डेटा से क्वेरी करना

Google Health API का एक मुख्य फ़ायदा यह है कि इससे किसी व्यक्ति की परफ़ॉर्मेंस को ट्रैक किया जा सकता है. साथ ही, लंबे समय तक उसकी सेहत से जुड़ी ज़रूरी जानकारी पर नज़र रखी जा सकती है. उपयोगकर्ता के डेटा को तब तक क्वेरी किया जा सकता है, जब तक उसे रिकॉर्ड किया गया है. एपीआई, आपके ऐप्लिकेशन के इस्तेमाल किए जा सकने वाले पुराने डेटा की मात्रा पर कोई सीमा या पाबंदी नहीं लगाता है.

हालांकि, पुराने डेटा को क्वेरी करने पर अब भी स्टैंडर्ड रेट लिमिट लागू होती हैं. सिस्टम को स्थिर रखने और बहुत ज़्यादा पेलोड को रोकने के लिए, Google Health API एंडपॉइंट के हिसाब से पेज के साइज़ के साथ अपने-आप पेज नंबर डालने की सुविधा का इस्तेमाल करता है. इन बातों का ध्यान रखें:

  • अपने-आप पेज पर बांटने की सुविधा: अगर आपने डेटा के लंबे स्पैन के लिए क्वेरी की है, तो एपीआई सिर्फ़ नतीजों का पहला पेज दिखाएगा. यह पेज, उस एंडपॉइंट के लिए पेज के साइज़ की सीमा तक होगा. साथ ही, इसमें nextPageToken भी शामिल होगा. इसके बाद के पेजों का अनुरोध करने के लिए, आपको nextPageToken का इस्तेमाल करना होगा.
  • पेज के अलग-अलग साइज़: कैपिंग की सीमाएं, एंडपॉइंट और डेटा टाइप पर निर्भर करती हैं. ज़्यादातर डेटा टाइप के लिए, पेज का साइज़ ज़्यादा से ज़्यादा 10,000 तक सीमित होता है. हालांकि, कुछ डेटा टाइप जैसे कि exercise और sleep के लिए, पेज का डिफ़ॉल्ट और ज़्यादा से ज़्यादा साइज़ 25 पर सेट होता है. उदाहरण के लिए, अगर कोई क्लाइंट पिछले 10 सालों का नींद से जुड़ा सारा डेटा मांगता है, तो एपीआई पहले पेज पर सिर्फ़ 25 स्लीप सेशन दिखाएगा.
  • रोलअप की तारीख की सीमा से जुड़ी पाबंदियां: डेटा रोलअप और एग्रीगेशन एंडपॉइंट (जैसे कि rollUp और dailyRollUp) के लिए, क्वेरी की तारीख की सीमाएं डेटा टाइप के आधार पर तय की जाती हैं:
    • calories-in-heart-rate-zone, heart-rate, active-minutes, और total-calories के लिए, ज़्यादा से ज़्यादा 14 दिनों की रेंज.
    • अन्य सभी रोलअप डेटा टाइप के लिए, ज़्यादा से ज़्यादा 90 दिनों की सीमा.

आपके ऐप्लिकेशन को पुराने डेटा की जितनी ज़रूरत है उसके हिसाब से, पूरे डेटासेट को वापस पाने के लिए, पेजों को क्रम से लोड करना होगा. अपने ऐप्लिकेशन के डेटा को सिंक करने की प्रोसेस डिज़ाइन करते समय, इस बात का ध्यान रखें.

यह पक्का करने के लिए कि एपीआई बेहतर तरीके से काम करे और गड़बड़ियां न हों, पुराने डेटा को क्वेरी करते समय इन दिशा-निर्देशों का पालन करें:

डेटा को फ़ेज़ के हिसाब से सिंक करना (हॉट वर्सेस कोल्ड लोड)

  • शुरुआती "हॉट" लोड: प्राइमरी लोड सीक्वेंस के दौरान, सिर्फ़ पिछले 7 से 14 दिनों का सबसे नया डेटा फ़ेच और रेंडर करें. इससे यह पक्का होता है कि उपयोगकर्ताओं को डेटा तुरंत दिखे. उन्हें लंबी अवधि तक चलने वाली क्वेरी के लिए इंतज़ार न करना पड़े.
  • बैकग्राउंड में "कोल्ड" लोड: प्राइमरी यूज़र इंटरफ़ेस (यूआई) रेंडर होने के बाद, पुराने डेटा को एसिंक्रोनस, कम प्राथमिकता वाली कतार या बैकग्राउंड प्रोसेस में भेजें.

एग्रीगेशन के लिए क्वेरी को हिस्सों में बांटना

  • रोलअप और रोज़ के रोलअप वाले एंडपॉइंट, तारीख की ज़्यादा से ज़्यादा सीमा लागू करते हैं. यह सीमा, डेटा टाइप के हिसाब से 14 या 90 दिन होती है. इसलिए, आपको इतिहास के बड़े एग्रीगेशन क्वेरी को इन सीमाओं के अंदर, छोटे-छोटे क्रमवार इंटरवल में बांटना होगा.
  • इन सब-क्वेरी को सुरक्षित तरीके से बैच या क्रम में लगाएं, ताकि एक साथ कई अनुरोध करने की सीमा का पालन किया जा सके और यूज़र इंटरफ़ेस (यूआई) पर प्रोग्रेस इंडिकेटर को लगातार अपडेट किया जा सके.

पहले से एग्रीगेट किए गए रोल-अप का इस्तेमाल करना

खास जानकारी वाले डैशबोर्ड और रुझान चार्ट को फिर से व्यवस्थित करें, ताकि पहले से एग्रीगेट किए गए डेटा और खास जानकारी वाले एंडपॉइंट (जैसे, DailyRollUpDataPoints) का इस्तेमाल किया जा सके. इससे बैकएंड पर कंप्यूटिंग का ओवरहेड और क्लाइंट को डेटा ट्रांसफ़र करने में लगने वाला समय काफ़ी कम हो जाएगा.

गड़बड़ी ठीक करने की बेहतर सुविधा (स्मार्ट तरीके से फिर से कोशिश करना)

  • दर की सीमाओं (429 Too Many Requests) और सर्वर गेटवे टाइमआउट (504 Gateway Timeout) का सामना करते समय, एक्सपोनेन्शियल बैकऑफ़ को सख्ती से लागू करें. बड़े और फ़ेल हो चुके पेलोड को तुरंत फिर से भेजने की कोशिश न करें. तुरंत फिर से कोशिश करने से, बैकएंड पर ज़्यादा लोड पड़ता है और सिस्टम की परफ़ॉर्मेंस खराब हो जाती है.

तीसरे पक्ष को ऐक्सेस देना

Fitbit डिवाइस, तीसरे पक्ष के ऐप्लिकेशन या सेवाओं के साथ सीधे तौर पर कम्यूनिकेट नहीं कर सकते. इन डिवाइसों को सिर्फ़ Fitbit मोबाइल ऐप्लिकेशन के साथ कम्यूनिकेट और सिंक करने के लिए डिज़ाइन किया गया है.

Fitbit ऐप्लिकेशन खुला होने पर, डिवाइस दिन भर में अपने-आप डेटा सिंक करता है. अगर ब्लूटूथ चालू है और ऐप्लिकेशन बैकग्राउंड में चल रहा है, तो हर 15 मिनट में डेटा सिंक होता है. सिंक करने की यह प्रोसेस पूरी होने के बाद, Google Health API के ज़रिए तीसरे पक्ष की सेवाओं के लिए डेटा उपलब्ध हो जाता है.

दूरी के स्टैंडर्ड

व्यायाम की दूरी, जैसे कि elevationGainMillimeters को मिलीमीटर में मापा जाता है. ऐसा इन वजहों से किया जाता है:

  1. डेटा को सटीक बनाए रखना: मिलीमीटर का इस्तेमाल करने की सबसे अहम वजह यह है कि हम जो डेटा पढ़ते और देते हैं उसमें कोई भी गड़बड़ी न हो. मिलीमीटर जैसी छोटी इकाई का इस्तेमाल करने से, हम मेज़रमेंट को ज़्यादा सटीक तरीके से दिखा पाते हैं.
  2. स्टैंडर्ड यूनिट: हमारी सभी सेवाओं में, मिलीमीटर को स्टैंडर्ड यूनिट के तौर पर इस्तेमाल किया जाता है. इससे यह पक्का करने में मदद मिलती है कि एपीआई के अलग-अलग हिस्सों से इंटरैक्ट करने वाले डेवलपर को एक जैसा अनुभव मिले.
  3. मेज़रमेंट सिस्टम के लिए बेहतर सपोर्ट: मिलीमीटर जैसी बुनियादी इकाई का इस्तेमाल करने से, डेवलपर के लिए किसी भी दूसरी चुनी गई इकाई में बदलना आसान हो जाता है. इससे कोई फ़र्क़ नहीं पड़ता कि वे मीट्रिक, इंपीरियल या अन्य मेज़रमेंट सिस्टम के साथ काम कर रहे हैं या नहीं.

दिन की अवधि में बदलाव

Health API, समय को मैनेज करने के लिए उपयोगकर्ता के समय को प्राथमिकता देता है. ऐसा इसलिए, ताकि दिन की अवधि में होने वाले बदलावों को ध्यान में रखा जा सके. ये बदलाव, डेलाइट सेविंग टाइम या यात्रा की वजह से होते हैं. हर डेटा पॉइंट को दो तरह से सेव किया जाता है. पहला, इवेंट के समय का यूटीसी टाइमस्टैंप और दूसरा, इवेंट के समय का यूटीसी ऑफ़सेट. इससे सिस्टम को ये काम करने में मदद मिलती है:

  • इवेंट को किसी सटीक फ़िज़िकल इंस्टेंट पर मैप करें.
  • उपयोगकर्ता के स्थानीय कॉन्टेक्स्ट के हिसाब से, एग्रीगेशन के लिए समय को सही करें.

डेलाइट सेविंग टाइम

डेलाइट सेविंग टाइम (डीएसटी) के दौरान, "फ़ॉल बैक" की वजह से सिविल डे 25 घंटे का हो जाता है. इसलिए, उस तारीख के रोलअप में 25 घंटे का डेटा शामिल होगा. "स्प्रिंग फ़ॉरवर्ड" के नतीजे के तौर पर, 23 घंटे का सिविल डे होता है. इसमें समय वापस स्टैंडर्ड टाइम पर चला जाता है.

यात्रा

अलग-अलग टाइम ज़ोन में यात्रा करने से, एक दिन की अवधि में और भी ज़्यादा अंतर आ सकता है.

टाइम ज़ोन में अंतर को ठीक करने के लिए, dailyRollUp एंडपॉइंट का इस्तेमाल करें. यह उपयोगकर्ता के स्थानीय समय के हिसाब से, उस दिन के कैलेंडर में डेटा को अपने-आप एट्रिब्यूट करता है जिस दिन इसे रिकॉर्ड किया गया था. इससे टाइम ज़ोन में बदलाव होने के बावजूद, दिन के हिसाब से डेटा को "स्टिच" किया जा सकता है.