यहां दी गई टेबल में, डेटा टाइप की पूरी सूची दी गई है. इसमें कई कॉलम दिए गए हैं, ताकि आपको यह समझने में मदद मिल सके कि Google Health API में हर टाइप को कैसे दिखाया जाता है. साथ ही, यह भी बताया गया है कि हर टाइप किस स्कोप के तहत उपलब्ध है.
डेटा टाइपdataType
filter पैरामीटर |
उपलब्ध कार्रवाइयां |
दायरा |
|---|---|---|
|
खर्च की गई ऐक्टिव एनर्जी
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
ऐक्टिव मिनट
active-minutesactive_minutes
रिकॉर्ड टाइप: अंतराल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
ऐक्टिव ज़ोन मिनट
active-zone-minutesactive_zone_minutes
रिकॉर्ड टाइप: अंतराल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
गतिविधि का लेवल
|
सूची बनाना, मेल करना | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ऊंचाई
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
ब्लड ग्लूकोज़
blood-glucoseblood_glucose
रिकॉर्ड टाइप: सैंपल
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
बॉडी फ़ैट
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
हार्ट रेट ज़ोन में खर्च की गई कैलोरी
|
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 |
धड़कन की दर में रोज़ाना होने वाला उतार-चढ़ाव
daily-heart-rate-variabilitydaily_heart_rate_variability
रिकॉर्ड टाइप: हर दिन
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
धड़कन की दर वाले ज़ोन की रोज़ की जानकारी
daily-heart-rate-zonesdaily_heart_rate_zones
रिकॉर्ड टाइप: हर दिन
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
रोज़ाना ऑक्सीजन की मात्रा
daily-oxygen-saturationdaily_oxygen_saturation
रिकॉर्ड टाइप: हर दिन
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
रोज़ाना की सांस लेने की दर
daily-respiratory-ratedaily_respiratory_rate
रिकॉर्ड टाइप: हर दिन
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
आराम करते समय धड़कन की रोज़ की दर
daily-resting-heart-ratedaily_resting_heart_rate
रिकॉर्ड टाइप: हर दिन
वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी के लिए वेबहुक की सुविधा
वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी वाली गाइड
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
नींद के दौरान शरीर के तापमान में रोज़ाना होने वाले बदलाव
daily-sleep-temperature-derivationsdaily_sleep_temperature_derivations
रिकॉर्ड टाइप: हर दिन
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
गतिविधि के दौरान सांस लेने की दर का हर दिन का स्टेटस
daily-vo2-maxdaily_vo2_max
रिकॉर्ड टाइप: हर दिन
संगत डिवाइस
|
सूची बनाना, मेल करना | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
दूरी
distancedistance
रिकॉर्ड टाइप: अंतराल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
इलेक्ट्रोकार्डियोग्राम (ईसीजी)
electrocardiogramelectrocardiogram
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
सूची | .ecg.readonly |
एक्सरसाइज़
exerciseexercise
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
फ़्लोर
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
खाना
|
सूची, पाएं | .nutrition.readonly.nutrition.writeonly |
खाने-पीने की चीज़ों के मेज़रमेंट की यूनिट
food-measurement-unitfood_measurement_unit
रिकॉर्ड टाइप: खाना
संगत डिवाइस
|
सूची, पाएं | .nutrition.readonly.nutrition.writeonly |
धड़कन की दर
heart-rateheart_rate
रिकॉर्ड टाइप: सैंपल
वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी के लिए वेबहुक की सुविधा
वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी वाली गाइड
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
धड़कन की दर में उतार-चढ़ाव
heart-rate-variabilityheart_rate_variability
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ऊंचाई
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
हाइड्रेशन का लॉग
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
दिल की धड़कन अनियमित होने पर मिलने वाली सूचनाएं
|
सूची | .irn.readonly |
माहवारी का समय
menstrual-periodmenstrual_period
रिकॉर्ड टाइप: अंतराल
|
create, update, batchDelete | .reproductive_health.writeonly |
मूड
moodsmoods
रिकॉर्ड टाइप: सैंपल
|
create, update, batchDelete | .mindfulness.writeonly |
पोषण से जुड़ा डेटा लॉग करें
nutrition-lognutrition_log
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
ऑव्युलेशन टेस्ट
ovulation-testovulation_test
रिकॉर्ड टाइप: सैंपल
|
create, update, batchDelete | .reproductive_health.writeonly |
ऑक्सीजन की मात्रा
oxygen-saturationoxygen_saturation
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
नींद के दौरान सांस लेने की दर की खास जानकारी
respiratory-rate-sleep-summaryrespiratory_rate_sleep_summary
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची बनाना, मेल करना | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
दौड़ने के दौरान का VO2 मैक्स
run-vo2-maxrun_vo2_max
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
एक ही जगह पर बैठे या लेटे रहने की अवधि
sedentary-periodsedentary_period
रिकॉर्ड टाइप: अंतराल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
नींद
sleepsleep
रिकॉर्ड टाइप: सेशन
संगत डिवाइस
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
तरीका
stepssteps
रिकॉर्ड टाइप: अंतराल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
स्विम लेंथ का डेटा
swim-lengths-dataswim_lengths_data
रिकॉर्ड टाइप: अंतराल
संगत डिवाइस
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
लक्षण
symptomssymptoms
रिकॉर्ड टाइप: सैंपल
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
धड़कन की दर वाले ज़ोन में बिताया गया समय
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
कुल कैलोरी
total-caloriestotal_calories
रिकॉर्ड टाइप: अंतराल
संगत डिवाइस
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
VO2 मैक्स
vo2-maxvo2_max
रिकॉर्ड टाइप: सैंपल
संगत डिवाइस
|
सूची बनाना, मेल करना | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
वज़न
|
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 दिन की होती है.
डेटा की उपलब्धता
उपयोगकर्ता के डेटा में अपडेट सिर्फ़ तब उपलब्ध होते हैं, जब वह गतिविधि ट्रैकर को सिंक करता है या 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 को मिलीमीटर में मापा जाता है. ऐसा इन वजहों से किया जाता है:
- डेटा को सटीक बनाए रखना: मिलीमीटर का इस्तेमाल करने की सबसे अहम वजह यह है कि हम जो डेटा पढ़ते और देते हैं उसमें कोई भी गड़बड़ी न हो. मिलीमीटर जैसी छोटी इकाई का इस्तेमाल करने से, हम मेज़रमेंट को ज़्यादा सटीक तरीके से दिखा पाते हैं.
- स्टैंडर्ड यूनिट: हमारी सभी सेवाओं में, मिलीमीटर को स्टैंडर्ड यूनिट के तौर पर इस्तेमाल किया जाता है. इससे यह पक्का करने में मदद मिलती है कि एपीआई के अलग-अलग हिस्सों से इंटरैक्ट करने वाले डेवलपर को एक जैसा अनुभव मिले.
- मेज़रमेंट सिस्टम के लिए बेहतर सपोर्ट: मिलीमीटर जैसी बुनियादी इकाई का इस्तेमाल करने से, डेवलपर के लिए किसी भी दूसरी चुनी गई इकाई में बदलना आसान हो जाता है. इससे कोई फ़र्क़ नहीं पड़ता कि वे मीट्रिक, इंपीरियल या अन्य मेज़रमेंट सिस्टम के साथ काम कर रहे हैं.
दिन की अलग-अलग अवधि
Health API, समय को इस तरह से मैनेज करता है कि उपयोगकर्ता के समय को प्राथमिकता दी जा सके. इससे दिन की अवधि में होने वाले बदलावों को ध्यान में रखा जा सकता है. ये बदलाव, डेलाइट सेविंग टाइम या यात्रा की वजह से होते हैं. हर डेटा पॉइंट को दो तरह से सेव किया जाता है. पहला, इवेंट के समय का यूटीसी टाइमस्टैंप और दूसरा, इवेंट के समय का यूटीसी ऑफ़सेट. इससे सिस्टम को ये काम करने की अनुमति मिलती है:
- इवेंट को किसी सटीक फ़िज़िकल इंस्टैंट पर मैप करें.
- उपयोगकर्ता के स्थानीय संदर्भ के हिसाब से समय को सही करें, ताकि उसे एग्रीगेट किया जा सके.
डेलाइट सेविंग टाइम
डेलाइट सेविंग टाइम (डीएसटी) के दौरान, "फ़ॉल बैक" की वजह से सिविल डे 25 घंटे का हो जाता है. इसलिए, उस तारीख के रोलअप में 25 घंटे का डेटा शामिल होगा. "स्प्रिंग फ़ॉरवर्ड" के नतीजे में 23 घंटे का सिविल डे होता है, जिसमें समय वापस स्टैंडर्ड टाइम पर चला जाता है.
यात्रा
अलग-अलग टाइम ज़ोन में यात्रा करने से, एक दिन की अवधि में और भी ज़्यादा अंतर आ सकता है.
टाइम ज़ोन में अंतर को ठीक करने के लिए, dailyRollUp एंडपॉइंट का इस्तेमाल करें. यह उपयोगकर्ता के स्थानीय समय के हिसाब से, उस दिन के कैलेंडर में डेटा को अपने-आप एट्रिब्यूट करता है जिस दिन इसे रिकॉर्ड किया गया था. इससे समय क्षेत्र में बदलाव होने के बावजूद, दिन के हिसाब से डेटा को "स्टिच" किया जा सकता है.