Как создать динамическую форму с использованием REST?

Всем привет.
Я хочу создать динамическую форму, в приложении использую REST.
Из за того, что приложение изначально не знает структуру данных, нет возможности подготовить форму.
Придётся создавать её динамически.

Меня интересует как передать аннотацию, по которой будет формироваться форма (параметры валидации, источники данных для выпадающих списков, заголовки полей формы...).

Может кто подскажет, способ формирования динамической формы и способ передачи аннотации?
  • Вопрос задан
  • 2832 просмотра
Пригласить эксперта
Ответы на вопрос 5
С идеологической точки зрения, клиент посылает на сервер запрос с заголовком «Accept: формат», сервер вспоминает, умеет ли он описывать формы в таком формате, выдает описание формы в нём и обязательно указывает его Content-type. Клиент смотрит на Content-type, вспоминает, умеет ли он обрабатывать этот формат и рендерит форму. Сама идеология REST не накладывает никаких ограничений на то, как именно передавать данные.

Например можно с сервера выдать HTML страницу с формой, клиент смотрит, видит html, содержимое head добавляет к текущему head страницы (чтобы стили подгрузились), а содержимое body добавляет в div для формы. Очень соответсвует REST.
Ответ написан
Комментировать
@VikentiyR Автор вопроса
Спасибо за ответ.
Как раз думал в данном направлении, но интересовало насколько это верно с идеологической точки зрения.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Что-то типа того:
[
    {name: "fieldName", 'type': "email", 'length': {min: 10, max: 50}, label: "Field Label"}
]


И все в таком духе. Реализовать сборщик формы в зависимости от типа тоже реально.

Еще есть готовые реализации. Я увы работал с этой проблемой только в контексте работы с Backbone. Тут мне помогла эта реализация
Ответ написан
Wott
@Wott
Я, для похожей задачи по запросу просто присылал кусок html с формой. тип полей для валидации лежал в параметре поля, который клиентский код видел и валидировал и формировал PUT или POST ( создать или изменить ). вызов — куда конкретно оправлять также клал в action.
потому что php сам по себе нормальнйы шаблонизатор, а на клиенте же приходиться создавать и лопатить DOM «вручную»

Можно присылать список полей со всеми параметрами и создавать на клиенте и это лучше в том случае если мы хотим разгрузить сервер или у нас уже есть шаблонизатор на клиенте.
Ответ написан
Комментировать
@VikentiyR Автор вопроса
Присылать форму очень заманчиво, но при разработке альтернативного клиента (например для мобильного) придётся дорабатывать серверную часть, отвечающую за формирование html.

К тому же я использую достаточно удобный шаблонизатор.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы