Описание
Написать сервис построения клиентских форм. Учесть, что формы могут быть трех типов:
- Обычная форма
- Многоуровневая форма
- Зависимая многоуровневая форма
Обычная форма: просто набор полей с описанием caption, возможное перечисление options (в случае с select) и т.п.
Многоуровневая форма: форма разбита на несколько шагов, после заполнения 1-го шага приложение (фронт или моб. приложение) вызывает снова метод с этой формой, но уже с передачей шага, который требуется показать пользователю в приложении.
Зависимая многоуровневая форма: повторяет функционал многоуровневой формы, но в дополнение к этому, поля на каком-либо шаге могут зависеть от полей на предыдущем шаге.
Зависимые поля могут зависеть от полей на предыдущем шаге. Ситуацию, когда поле зависит от другого поля на следующем шаге (например, когда пользователь вернулся на шаг и внес изменения), не рассматриваем.
Валидацию делать не нужно, версткой заниматься тоже не нужно.
Требования к окружению
- PHP 7.x
- Symfony 5 (можно не использовать все возможные фишки, но развернуть сервис на этом фреймворке)
- Сервис должен быть завернут в docker контейнер
- Протокол взаимодействия REST
Дополнительно
При проектировании архитектуры данного сервиса было бы плюсом использование паттернов проектирования.
Задание носит творческий характер, написание кода, выбор паттернов и прочие тех. моменты на усмотрение кандидата.
Примерное время на реализацию
2-е суток