Files
healthlog/docs/tasks/items/read-api-points-period.md
T
av bd832337df tasks: задачи спринта раздроблены до восьми гранулярных
- конверт и точки разложены на форму провода, точки за период и условный
  запрос; свёртка — на сетку, порог неполного ведра и предел размера ответа;
  тренировки и записи разъехались на два независимых маршрута
- openapi-swagger разложена на спеку, гейт против расхождения и Swagger UI —
  все три вне набора, вместе с mcp-server
- набор спринта 2026-08-04 — весь HTTP-слой чтения, восемь задач
2026-08-04 14:21:57 +03:00

2.5 KiB
Raw Blame History

Точки за период

  • Секция: ядро
  • Зачем: Точки лежат в витрине и наружу не отдаются: «вес за год» достаётся только sqlite3 на хосте
  • Теги: goal:read-api, sprint:2026-08-04

Потребитель получает значения метрики за период одним запросом ?from&to, и из конверта видно, что именно ему отдали: слой, род свёртки и границу окна, в котором род измерен.

Форм запроса ровно две, и это один маршрут с необязательным параметром: здесь только первая — все значения за период (вес, лекарства, симптомы). Разбивка — соседняя задача.

Клиент обязан видеть границы окна измерения. Род метрики измерен по 48 самым свежим общим часам, а не по последним 48 часам календаря: выключенная минутная автоматизация HAE останавливает пополнение множества общих часов, и окно замирает, продолжая объявлять род. Единственный след — last_hour; конверт обязан его нести.

Форма конверта наследует решение задачи о форме провода, а не принимает его заново.

Критерии приёмки

  • «вес за год» отвечается одним запросом без доступа к файлу базы — оракул: запрос к поднятому сервису на живом архиве
  • в ответе всегда видны layer, aggregation и last_hour — оракул: тест на форме ответа
  • метрика, у которой род не измерен, отдаётся без свёртки и говорит об этом, а не молчит и не досчитывает — оракул: тест на метрике с неизвестным родом

Рамки

Схема не трогается, данные только читаются, сервис перезапускается. Берётся после формы провода. Против ./data — только task up / task run.