Habr<p>Магический метод работы с формами</p><p>Видеоаналитика в СИБУРе — это сложный и многогранный продукт, который внедряется на разных производствах. Несмотря на то, что это один продукт, его конфигурация может сильно отличаться: используются различные камеры, детекторы и параметры, а также интеграции с разнообразными сторонними системами. В таких условиях инженеру не всегда понятно, что именно надо дописать, а валидация происходит только после окончания редактирования файла и перезапуска сервиса. Логичное решение — предоставить инженерам удобный интерфейс, где они смогут заполнять форму и сразу видеть ошибки. Меня зовут Владимир Кирилкин, я техлид в Цифровом СИБУРе, в команде Индустрии 4.0. Мы разрабатываем продукт «Видеоаналитика на производстве», и о наших задачах уже писали на Хабре ( habr.com/ru/companies/sibur_official/articles/700634/ ). Мы подошли к задаче нестандартно: вместо заранее заданных форм на фронте реализовали их автоматическую генерацию с использованием JSON-схем и немного ✨магии✨. Наши сервисы построены на Python и React, но предложенный подход можно адаптировать и для других технологий — правда, с чуть меньшим количеством ✨магии✨.</p><p><a href="https://habr.com/ru/companies/sibur_official/articles/875372/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/sibur_of</span><span class="invisible">ficial/articles/875372/</span></a></p><p><a href="https://zhub.link/tags/%D1%84%D0%BE%D1%80%D0%BC%D1%8B" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>формы</span></a> <a href="https://zhub.link/tags/jsonschema" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>jsonschema</span></a> <a href="https://zhub.link/tags/pydantic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>pydantic</span></a> <a href="https://zhub.link/tags/python" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>python</span></a> <a href="https://zhub.link/tags/react" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>react</span></a> <a href="https://zhub.link/tags/backend_driven_ui" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>backend_driven_ui</span></a> <a href="https://zhub.link/tags/%D1%81%D0%B8%D0%B1%D1%83%D1%80_%D1%86%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>сибур_цифровой</span></a> <a href="https://zhub.link/tags/heavy_digital" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>heavy_digital</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>промышленность</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>промышленное_программирование</span></a></p>