doc: ответы Соннету — dataType:None не баг, YAML вручную, лаг непредсказуем

This commit is contained in:
2026-08-02 07:34:47 +04:00
parent 4ee0433e28
commit 333a3d5e63
@@ -90,3 +90,39 @@
Я хочу чтобы в итоге получился **конкретный план действий**: Я хочу чтобы в итоге получился **конкретный план действий**:
что тестировать, как часто, что считать ошибкой, что — допустимым что тестировать, как часто, что считать ошибкой, что — допустимым
расхождением. расхождением.
---
## Ответ Соннета (2026-08-02)
### 4. dataType: None — первопричина найдена
`dict.get(key, default)` возвращает `default` **только если ключ отсутствует**.
Если в YAML написано `data_type: null` — ключ *есть*, значение — `None`,
дефолт `"string"` не срабатывает.
### Мои ответы
**Q4.1 — data_type: null в YAML?** Проверил — в терраформ-YAML нет
`data_type: null`. Реальный API возвращает `dataType: null` для параметра
`nestedRefExample` (param 396). Полигон возвращает `"string"` — он ПРАВИЛЬНО
применяет дефолт там, где реальный API отдаёт null. Это не баг полигона,
а улучшение.
**Q4.2 — _convert_sub_params?** Та же уязвимость потенциально есть, но не
проявляется — sub_params всегда имеют data_type.
**Q1.1 — частота регенерации YAML?** ВРУЧНУЮ. `from_stands.py` запускается
человеком когда он вспомнит. Никакого cron/webhook.
**Q1.2 — лаг от реального API до YAML?** Непредсказуемо. От часов до недель.
Зависит от того когда кто-то запустит `from_stands.py`.
**Q1.3 — потребитель результатов?** Разработчик. Ему нужно знать «полигон
устарел, перегенери YAML», а не «полигон сломан».
**Q2.1 — дополнительные эндпоинты в реальном API?** Не проверял. Надо
сравнить полный список эндпоинтов.
**Q2.2 — lifecycle поля?** Не сравниваются в текущем compare_test.py. Надо
добавить.