11 lines
1.5 KiB
Markdown
11 lines
1.5 KiB
Markdown
# Итог: null в PATCH (изменение 018)
|
|||
|
|
|
||
|
|
## Что сделано
|
||
|
|
- `app/schemas.py`: общий валидатор `_blank` — `null` в текстовых полях `AddressUpdate` (`dns_name`, `description`, `note`), `PrefixUpdate` (`description`, `note`), `DeviceUpdate` (`mac`, `note`), `VrfUpdate` (`route_target`, `note`) означает «очистить» (пустая строка);
|
||
|
|
`status` адреса = `null` → 422; `device_id: null` по-прежнему отвязывает устройство.
|
||
|
|
- `app/services.py`: сообщение по умолчанию для конфликтов БД заменено на нейтральное (`CONFLICT_MSG`: «Конфликт с существующими данными: проверьте уникальность значений и связанные объекты»);
|
||
|
|
сообщения с явным текстом (дубль префикса, логина и т.п.) не менялись.
|
||
|
|
- `README.md`: раздел API.
|
||
|
|
|
||
|
|
## Проверка
|
||
|
|
Проверка: стенд `ipam_control_006` пересобран, миграции применены до 0008 (`alembic check` — расхождений нет); ручная проверка (скрипт во временной папке, в репозиторий не добавлялся); автотесты по условию этапа не писались. `{"description": null}` → 200 и `""`; `{"status": null}` → 422.
|