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

37 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Точки за период
- **Секция:** ядро
- **Зачем:** Точки лежат в витрине и наружу не отдаются: «вес за год» достаётся только sqlite3 на хосте
- **Теги:** goal:read-api, sprint:2026-08-04
Потребитель получает значения метрики за период одним запросом `?from&to`, и из
конверта видно, что именно ему отдали: слой, род свёртки и границу окна, в
котором род измерен.
Форм запроса ровно две, и это один маршрут с необязательным параметром: здесь
только первая — все значения за период (вес, лекарства, симптомы). Разбивка —
соседняя задача.
**Клиент обязан видеть границы окна измерения.** Род метрики измерен по 48 самым
свежим **общим** часам, а не по последним 48 часам календаря: выключенная
минутная автоматизация HAE останавливает пополнение множества общих часов, и
окно замирает, продолжая объявлять род. Единственный след — `last_hour`; конверт
обязан его нести.
Форма конверта наследует решение задачи
[о форме провода](read-api-wire-format.md), а не принимает его заново.
## Критерии приёмки
- «вес за год» отвечается одним запросом без доступа к файлу базы — оракул:
запрос к поднятому сервису на живом архиве
- в ответе всегда видны `layer`, `aggregation` и `last_hour` — оракул: тест на
форме ответа
- метрика, у которой род не измерен, отдаётся без свёртки и говорит об этом, а
не молчит и не досчитывает — оракул: тест на метрике с неизвестным родом
## Рамки
Схема не трогается, данные только читаются, сервис перезапускается. Берётся
после формы провода. Против `./data` — только `task up` / `task run`.