مدیریت داده‌ها در API سلامت گوگل

کار با داده‌ها در API گوگل هلث در اصل چرخه‌ای از همگام‌سازی داده‌ها بین مخزن داده گوگل هلث API در فضای ابری و برنامه یا مخزن داده بک‌اند شما است. با این حال، این چرخه بسته به عوامل مختلف می‌تواند اشکال مختلفی داشته باشد:

  • آیا شما در حال نوشتن داده‌ها در API گوگل هلث هستید؟ فقط خواندن؟ یا هر دو را انجام می‌دهید؟
  • آیا پایگاه داده شما روی برنامه یا دستگاه شما به صورت محلی ذخیره شده است؟ یا روی فضای ابری خودتان؟
  • آیا نیاز دارید داده‌های API گوگل هلث را بین برنامه کاربر و یک دستگاه پوشیدنی همگام‌سازی کنید؟ چند وقت یکبار دستگاه‌ها را همگام‌سازی می‌کنید؟
  • با چه نوع داده‌هایی کار می‌کنید؟ شمارش‌های پایه؟ واحدهای اندازه‌گیری؟ سری‌هایی با نرخ‌های نمونه‌برداری متفاوت؟
  • آیا قصد دارید در حالی که برنامه شما در پس‌زمینه است، داده‌ها را بخوانید؟
  • آیا قصد دارید با داده‌های تاریخی ثبت‌شده قبل از دریافت مجوزهای کاربر توسط برنامه‌تان کار کنید؟

برای درک چگونگی ارتباط همه اینها با هم، نگاهی به چرخه حیات همگام‌سازی API گوگل هلث بیندازید. دو نسخه از این چرخه حیات وجود دارد: استاندارد (خواندنی و نوشتنی) و فقط خواندنی.

چرخه عمر همگام‌سازی استاندارد

چرخه عمر همگام‌سازی استاندارد در API سلامت گوگل
شکل ۱: چرخه عمر همگام‌سازی استاندارد در رابط برنامه‌نویسی کاربردی گوگل هلث

ادغام با API گوگل هلث به معنای کپی کردن داده‌ها در یک برنامه یا مخزن داده بک‌اند است. برای سهولت استفاده در این مستندات، ما این مخزن داده را مخزن داده توسعه‌دهنده می‌نامیم.

«کپی» در اینجا می‌تواند جایگزین هر فعالیت مجزایی مانند خواندن از API گوگل هلث (کپی کردن در انبار داده توسعه‌دهندگان) یا نوشتن در API گوگل هلث (کپی کردن در API گوگل هلث) شود. انجام مکرر این اقدامات با ترتیبی خاص، چرخه حیات همگام‌سازی است.

شکل ۱ چرخه عمر همگام‌سازی استاندارد را که شامل عملیات خواندن و نوشتن است، بدون توجه به هیچ یک از عواملی که قبلاً ذکر شد، نشان می‌دهد.

بنویس

  1. آماده‌سازی داده‌های جدید برای نوشتن — داده‌ها را از یک دستگاه یا برنامه خارجی منتقل کنید و نقاط داده را به نمایش‌های JSON سازگار با انواع داده Google Health API قالب‌بندی کنید. توجه داشته باشید که شناسه‌های سفارشی اختصاص داده شده توسط کلاینت برای نوشتن در حال حاضر در Health API پشتیبانی نمی‌شوند. چنین شناسه‌هایی ممکن است در یک POST ارائه شوند، اما نادیده گرفته می‌شوند.
  2. افزودن رکوردها - ارسال نقاط داده به API گوگل هلث با استفاده از نقاط انتهایی REST. از POST برای ایجاد رکوردها و PATCH برای درج و به‌روزرسانی رکوردهای موجود استفاده کنید. شناسه‌های مورد نیاز برای عملیات PATCH از یک عملیات POST قبلی (مرحله بعدی در یک چرخه قبلی) آمده‌اند.
  3. پردازش شناسه‌های منبع بازگشتی — هنگام استفاده از شناسه‌های تولید شده توسط سرور، name یا شناسه منبع بازگشتی توسط سرور را استخراج کرده و در مخزن داده توسعه‌دهنده خود ذخیره کنید تا به‌روزرسانی‌ها ( PATCH ) یا حذف‌ها ( DELETE ) در آینده فعال شوند. برای اطلاعات بیشتر در مورد این دو نوع، به استراتژی‌های شناسایی مراجعه کنید.

بخوانید

  1. خواندن رکوردها — داده‌های جدید را از داده‌های موجود در API گوگل هلث با استفاده از نقاط پایانی REST ( GET با پارامترهای پرس‌وجوی filter و صفحه‌بندی pageToken ، یا نقاط پایانی تجمیع مانند rollUp و dailyRollUp ) دریافت کنید و تغییرات را در آنها اعمال کنید، یا با استفاده از Webhook Subscriptions ( projects.subscribers ) اعلان‌های بلادرنگ دریافت کنید. یک اعلان فقط نشان می‌دهد که داده‌های جدید در دسترس هستند، نه اینکه داده‌های واقعی چه هستند.
  2. تطبیق پایگاه داده توسعه‌دهندگان — داده‌های جدید و به‌روزرسانی‌شده را با پایگاه داده توسعه‌دهندگان خود تطبیق دهید.

این چرخه سپس در فواصل زمانی مناسب و با توجه به نیازهای خاص دستگاه‌ها یا برنامه‌های خارجی تکرار می‌شود. این ترتیبی است که ما معمولاً برای همگام‌سازی داده‌ها بین پایگاه داده خود و API گوگل هلث توصیه می‌کنیم.

استراتژی‌های شناسایی

اگر قصد دارید قبل از ایجاد ادغام با APIهای Google Health، داده‌ها را در Google Health API بنویسید، باید هنگام ایجاد نقاط داده (واحد اصلی داده‌ها) یک استراتژی شناسایی منابع انتخاب کنید.

شناسه‌های اختصاص داده شده توسط کلاینت برای نوشتن در حال حاضر در Health API پشتیبانی نمی‌شوند. چنین شناسه‌هایی ممکن است در یک POST ارائه شوند، اما نادیده گرفته می‌شوند. جزئیات مربوط به این گزینه برای اهداف اطلاعاتی در اینجا ارائه شده است.

  1. شناسه‌های تولید شده توسط سرور (گزینه پیش‌فرض) : کلاینت داده‌ها را بدون شناسه ارسال می‌کند و رابط برنامه‌نویسی کاربردی گوگل هلث یک شناسه سیستم منحصر به فرد تولید و برمی‌گرداند.
  2. شناسه‌های سفارشی اختصاص داده شده به کلاینت (طبق AIP-133 ، هنوز پشتیبانی نمی‌شود) : برنامه کلاینت یک شناسه منحصر به فرد (مثلاً یک UUID یا کلید اصلی پایگاه داده محلی) تولید می‌کند و آن را در مسیر منبع هنگام ایجاد قرار می‌دهد.

جدول زیر هر دو استراتژی شناسایی را مقایسه می‌کند تا به شما در انتخاب رویکرد مناسب برای ادغامتان کمک کند:

ویژگی شناسه‌های تولید شده توسط سرور شناسه‌های سفارشی اختصاص داده شده توسط مشتری
تولید شناسه سرور در طول اجرای POST شناسه سیستم تصادفی تولید می‌کند. کلاینت قبل از نوشتن، شناسه پایدار را به صورت محلی (UUID نسخه ۴ / PK داخلی) تولید می‌کند.
مسیر منابع .../dataPoints/{server_id} (در پاسخ برگردانده می‌شود) .../dataPoints/{custom_id}
مرحله محلی پس از نوشتن الزامی. باید server_id برگردانده شده را در پایگاه داده محلی ذخیره کند تا امکان به‌روزرسانی‌ها/حذف‌های بعدی فراهم شود. هیچکدام. برنامه از قبل مالک شناسه است.
جدول نگاشت شناسه الزامی. کلاینت باید یک نگاشت دوطرفه ( local_idserver_id ) را حفظ کند. لازم نیست. کلاینت مستقیماً از کلید اصلی خود استفاده می‌کند.
رفتار تلاش مجدد (شبکه ضعیف) خطر تکرار. تلاش مجدد برای ارسال یک POST با زمان انقضا، یک رکورد تکراری با شناسه سرور جدید ایجاد می‌کند. ایمن و خودتوان. تلاش مجدد برای POST با همان custom_id از ایجاد مقادیر تکراری جلوگیری می‌کند (مقدار 409 ALREADY_EXISTS را برمی‌گرداند).
پشتیبانی از همگام‌سازی آفلاین محدود. باید منتظر پاسخ سرور بماند تا شناسه‌های رسمی منابع را قبل از ارجاع به آنها دریافت کند. کامل. موجودیت‌ها می‌توانند به صورت آفلاین با شناسه‌های پایدار ایجاد و تغییر داده شوند، سپس هنگام اتصال مجدد به صورت یکپارچه همگام‌سازی شوند.
محدودیت‌های قالب‌بندی کاملاً توسط سرور مدیریت می‌شود. باید بعد از ^[a-z0-9-]{4,63}$ (حروف کوچک، عدد و خط فاصله) قرار گیرد.
چه زمانی انتخاب کنیم

شناسه‌های تولید شده توسط سرور را انتخاب کنید اگر:

  • برنامه شما فقط نوشتنی/فقط اضافه کردنی است (مثلاً ارسال تله‌متری یا شمارش گام که هرگز به‌روزرسانی یا حذف نمی‌شوند).
  • برنامه شما یک پایگاه داده محلی دائمی از نقاط داده منفرد را نگهداری نمی‌کند.
  • شما سادگی را بدون مدیریت محدودیت‌های اعتبارسنجی رشته (مانند 4-63 کاراکتر) ترجیح می‌دهید.

اگر موارد زیر را دارید، شناسه‌های سفارشی را انتخاب کنید:

  • شما یک برنامه همگام‌سازی دو طرفه را اجرا می‌کنید که سوابق سلامت را در دستگاه‌های مختلف می‌خواند، می‌نویسد و به‌روزرسانی می‌کند.
  • برنامه شما یک پایگاه داده محلی (مانند Room یا SQLite) دارد که رکوردها را با کلیدهای اصلی محلی ذخیره می‌کند.
  • کاربران شما داده‌ها را به صورت آفلاین یا از طریق اتصالات متناوب تلفن همراه که در آن‌ها تلاش مجدد ایمن ضروری است، ثبت می‌کنند.
  • شما می‌خواهید جداول نگاشت شناسه بین پایگاه داده backend و API خود را حذف کنید.

چرخه حیات همگام‌سازی فقط خواندنی

چرخه عمر همگام‌سازی فقط خواندنی در API گوگل هلث
شکل ۲: چرخه حیات همگام‌سازی فقط خواندنی در رابط برنامه‌نویسی کاربردی گوگل هلث

برنامه‌ای که قصد دارد فقط از API گوگل هلث بخواند، باید داده‌ها را در پایگاه داده توسعه‌دهنده خود کپی کند و بخش تطبیق چرخه عمر را مدیریت کند.

همان وظایفی که در بخش «خواندن» پوشش داده شد، اینجا هم صدق می‌کند.

شکل ۲ چرخه حیات فقط خواندنی را نشان می‌دهد.