doc: ответы Соннету — dataType:None не баг, YAML вручную, лаг непредсказуем
This commit is contained in:
@@ -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. Надо
|
||||||
|
добавить.
|
||||||
|
|||||||
Reference in New Issue
Block a user