- конверт и точки разложены на форму провода, точки за период и условный запрос; свёртка — на сетку, порог неполного ведра и предел размера ответа; тренировки и записи разъехались на два независимых маршрута - openapi-swagger разложена на спеку, гейт против расхождения и Swagger UI — все три вне набора, вместе с mcp-server - набор спринта 2026-08-04 — весь HTTP-слой чтения, восемь задач
37 lines
2.5 KiB
Markdown
37 lines
2.5 KiB
Markdown
# Точки за период
|
||
|
||
- **Секция:** ядро
|
||
- **Зачем:** Точки лежат в витрине и наружу не отдаются: «вес за год» достаётся только 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`.
|