Về cơ bản, việc xử lý dữ liệu trong Google Health API là một chu trình đồng bộ hoá dữ liệu giữa kho dữ liệu Google Health API trên đám mây và kho dữ liệu ứng dụng hoặc phụ trợ của riêng bạn. Tuy nhiên, chu kỳ này có thể có nhiều hình thức tuỳ thuộc vào nhiều yếu tố:
- Bạn có đang ghi dữ liệu vào Google Health API không? Chỉ đọc? Hay làm cả hai?
- Kho dữ liệu của bạn có phải là kho dữ liệu cục bộ trên ứng dụng hoặc thiết bị không? Hoặc trong đám mây của riêng bạn?
- Bạn có cần đồng bộ hoá dữ liệu Google Health API giữa ứng dụng của người dùng và một thiết bị đeo không? Bạn đồng bộ hoá thiết bị bao lâu một lần?
- Bạn đang làm việc với những loại dữ liệu nào? Số lượt xem cơ bản? Đơn vị đo lường? Loạt phim có tốc độ lấy mẫu khác nhau?
- Bạn có dự định đọc dữ liệu trong khi ứng dụng của bạn đang ở chế độ nền không?
- Bạn có dự định xử lý dữ liệu trong quá khứ được ghi lại trước khi ứng dụng của bạn nhận được quyền của người dùng không?
Để hiểu cách tất cả những điều này kết hợp với nhau, hãy xem vòng đời đồng bộ hoá của Google Health API. Có hai phiên bản của vòng đời này: tiêu chuẩn (đọc và ghi) và chỉ đọc.
Vòng đời đồng bộ hoá tiêu chuẩn
Việc tích hợp với Google Health API có nghĩa là bạn sẽ sao chép dữ liệu vào một ứng dụng hoặc kho dữ liệu phụ trợ. Để dễ sử dụng trong tài liệu này, chúng ta sẽ gọi kho dữ liệu này là kho dữ liệu dành cho nhà phát triển.
"Sao chép" ở đây có thể thay thế cho bất kỳ hoạt động riêng biệt nào, chẳng hạn như đọc từ Google Health API (sao chép vào kho dữ liệu của nhà phát triển) hoặc ghi vào Google Health API (sao chép vào Google Health API). Việc thực hiện lặp lại các thao tác này theo một thứ tự cụ thể là vòng đời đồng bộ hoá.
Hình 1 minh hoạ vòng đời đồng bộ hoá tiêu chuẩn liên quan đến các thao tác đọc và ghi, bất kể yếu tố nào đã đề cập trước đó.
Viết
- Chuẩn bị dữ liệu mới để ghi – Chuyển dữ liệu từ một thiết bị hoặc ứng dụng bên ngoài và định dạng các điểm dữ liệu thành biểu thị JSON tương thích với các kiểu dữ liệu của Google Health API. Xin lưu ý rằng API Health hiện không hỗ trợ các mã nhận dạng tuỳ chỉnh do ứng dụng chỉ định cho các thao tác ghi. Bạn có thể cung cấp các mã nhận dạng như vậy trong
POST, nhưng chúng sẽ bị bỏ qua. - Chèn và cập nhật bản ghi – Gửi điểm dữ liệu đến Google Health API bằng cách sử dụng các điểm cuối REST. Sử dụng
POSTđể tạo bản ghi vàPATCHđể chèn và cập nhật bản ghi hiện có. Các mã nhận dạng cần thiết cho thao tácPATCHsẽ đến từ thao tácPOSTtrước đó (bước tiếp theo trong một chu kỳ trước đó). - Xử lý mã nhận dạng tài nguyên được trả về – Khi sử dụng mã nhận dạng do máy chủ tạo, hãy trích xuất và duy trì tài nguyên
namehoặc mã nhận dạng do máy chủ trả về trong kho dữ liệu của nhà phát triển để cho phép các bản cập nhật (PATCH) hoặc lượt xoá (DELETE) trong tương lai. Hãy xem Chiến lược nhận dạng để biết thêm thông tin về hai loại này.
Đọc
- Đọc bản ghi – Tìm nạp dữ liệu mới và các thay đổi đối với dữ liệu hiện có trong Google Health API bằng cách sử dụng các điểm cuối REST (
GETcó các tham số truy vấnfiltervà phân trangpageTokenhoặc các điểm cuối tổng hợp nhưrollUpvàdailyRollUp), hoặc nhận thông báo theo thời gian thực bằng cách sử dụng Đăng ký webhook (projects.subscribers). Thông báo chỉ cho biết có dữ liệu mới, chứ không cho biết dữ liệu thực tế là gì. - Điều chỉnh datastore của nhà phát triển – Điều chỉnh dữ liệu mới và dữ liệu đã cập nhật cho datastore của nhà phát triển.
Sau đó, chu kỳ này sẽ lặp lại theo các khoảng thời gian thích hợp tuỳ theo nhu cầu cụ thể của các thiết bị hoặc ứng dụng bên ngoài. Đây thường là thứ tự mà chúng tôi đề xuất để đồng bộ hoá dữ liệu giữa kho dữ liệu của riêng bạn và Google Health API.
Chiến lược nhận dạng
Nếu muốn ghi dữ liệu vào Google Health API, trước khi tạo mối tích hợp với Google Health API, bạn phải chọn một chiến lược nhận dạng tài nguyên khi tạo điểm dữ liệu (đơn vị dữ liệu cơ bản).
Health API hiện không hỗ trợ mã nhận dạng do ứng dụng khách chỉ định cho các thao tác ghi.
Bạn có thể cung cấp những mã nhận dạng như vậy trong POST, nhưng chúng sẽ bị bỏ qua. Thông tin chi tiết về lựa chọn này được cung cấp ở đây chỉ nhằm mục đích tham khảo.
- Mã nhận dạng do máy chủ tạo (lựa chọn mặc định): Ứng dụng gửi dữ liệu mà không có mã nhận dạng và phần phụ trợ Google Health API sẽ tạo và trả về một giá trị nhận dạng hệ thống duy nhất.
- Mã nhận dạng tuỳ chỉnh do ứng dụng khách chỉ định (theo AIP-133, chưa được hỗ trợ): Ứng dụng khách tạo một giá trị nhận dạng duy nhất (ví dụ: khoá chính UUID hoặc cơ sở dữ liệu cục bộ) và cung cấp giá trị nhận dạng đó trong đường dẫn tài nguyên khi tạo.
Bảng sau đây so sánh cả hai chiến lược nhận dạng để giúp bạn chọn phương pháp phù hợp cho hoạt động tích hợp:
| Tính năng | Mã nhận dạng do máy chủ tạo | Mã nhận dạng tuỳ chỉnh do khách hàng chỉ định |
|---|---|---|
| Tạo mã nhận dạng | Máy chủ tạo mã nhận dạng hệ thống ngẫu nhiên trong quá trình thực thi POST. |
Ứng dụng tạo mã nhận dạng ổn định cục bộ (UUID phiên bản 4 / khoá chính nội bộ) trước khi ghi. |
| Đường dẫn tài nguyên | .../dataPoints/{server_id} (trả về trong phản hồi) |
.../dataPoints/{custom_id} |
| Post-Write Local Step | Bắt buộc. Phải lưu trữ server_id đã trả về trong DB cục bộ để cho phép cập nhật/xoá trong tương lai. |
Không có. Ứng dụng đã sở hữu mã nhận dạng này. |
| Bảng liên kết mã nhận dạng | Bắt buộc. Ứng dụng phải duy trì mối liên kết hai chiều (local_id ↔ server_id). |
Không cần thiết. Ứng dụng sử dụng trực tiếp khoá chính của riêng mình. |
| Hành vi thử lại (Mạng yếu) | Rủi ro về nội dung trùng lặp. Việc thử lại POST đã hết thời gian chờ sẽ tạo một bản ghi trùng lặp có mã máy chủ mới. |
An toàn và bất biến. Thử lại POST với cùng một custom_id sẽ ngăn việc tạo trùng lặp (trả về 409
ALREADY_EXISTS). |
| Hỗ trợ đồng bộ hoá khi không có mạng | Bị hạn chế. Phải đợi phản hồi của máy chủ để lấy mã nhận dạng tài nguyên chính thức trước khi tham chiếu đến các mã nhận dạng đó. | Đầy. Bạn có thể tạo và thay đổi các thực thể ở chế độ ngoại tuyến bằng mã nhận dạng ổn định, sau đó đồng bộ hoá liền mạch khi kết nối lại. |
| Các quy tắc ràng buộc về định dạng | Do máy chủ xử lý hoàn toàn. | Phải tuân theo ^[a-z0-9-]{4,63}$ (4–63 ký tự chữ và số viết thường và dấu gạch ngang). |
| Khi nào nên chọn |
Chọn mã do máy chủ tạo nếu:
|
Chọn mã nhận dạng tuỳ chỉnh nếu:
|
Vòng đời đồng bộ hoá chỉ có thể đọc
Một ứng dụng chỉ có ý định đọc dữ liệu từ Google Health API phải sao chép dữ liệu vào kho dữ liệu của nhà phát triển và xử lý phần điều chỉnh của vòng đời.
Các nhiệm vụ tương tự trong phần Đọc cũng áp dụng ở đây.
Hình 2 minh hoạ vòng đời chỉ đọc.