test(portal): harden api contract validation

This commit is contained in:
igor04091968
2026-06-05 08:40:49 +03:00
parent 5e6bbd47a1
commit bc2f56ef8f
6 changed files with 420 additions and 121 deletions
+10 -3
View File
@@ -12,6 +12,7 @@ DPD нужен для безопасной эволюции интерфейса
- `/dpd/` работает как полный mirror текущего портала;
- будущий React/Tauri UI сможет использовать те же API-контракты;
- новые UI-решения проверяются без cutover и без дублирования бизнес-логики.
- будущий UI не парсит HTML текущего портала как источник данных.
DPD проксирует:
@@ -77,9 +78,15 @@ detmir-dpd-portal \
- `/dpd/api/contracts/openapi.json`;
- `/dpd/api/contracts/typescript.d.ts`.
Правило совместимости: изменения API должны быть additive. Клиенты React/Tauri
обязаны игнорировать неизвестные поля и корректно обрабатывать отсутствующие
optional-поля.
Правила совместимости:
- изменения API должны быть additive;
- клиенты React/Tauri обязаны игнорировать неизвестные поля;
- optional-поля могут отсутствовать;
- `null` не должен ломать UI;
- breaking changes требуют version bump контракта и отдельного architecture
decision;
- будущий React/Tauri UI не должен парсить HTML текущего портала.
## Проверка симметрии