Biblioteca/marco frontend de Javascript para formularios web, compatible con Bootstrap 3 y json-schema

Estoy tratando de encontrar alguna biblioteca de formularios web javascript front-end (en el navegador), que tiene los siguientes requisitos:

  • Suficientemente liviano para usar en una aplicación de varias páginas (a diferencia de una aplicación de una página)
  • Compatible con Bootstrap 3, diseño receptivo
  • Uso de json-schema para la descripción del modelo de datos, json o extensiones del esquema json para la descripción del formulario (como elección o parámetro para el widget)
  • Compatibilidad con arreglos y enfoque en operaciones CRUD, interactuando con el backend (el backend puede agregar sus propias reglas de validación). Python está en el backend, colador como biblioteca de validación. Deform es lo que se quiere reemplazar con la biblioteca frontal.
  • La idea es que habrá una necesidad mínima de modificar los formularios una vez que se expresen en el esquema JSON. Es decir, dado el esquema (o hiperesquema json), la forma y los datos, uno puede estar más o menos seguro de que lo que se representa, se ve y se siente.
  • i18n listo
  • Es mejor ser de código abierto, Bower se usa para reunir componentes

El propósito de la aplicación es administrar (= CRUD) "recursos", que están interconectados y pueden tener metadatos. Los recursos no están tallados en piedra (en realidad, pueden provenir de datos vinculados/semánticos, y agregar una nueva forma no debería requerir un DSL completo orientado a objetos en el backend y otro en el frontend), los tipos de datos son habituales, incluidas secuencias y asignaciones. . Es decir, la aplicación se basa principalmente en datos, con excepciones solo donde el estilo declarativo no es factible.

Hasta el momento, los candidatos son:

  • AngularJs: parece cumplir los requisitos, pero es demasiado grande para esta aplicación específica. La forma de esquema angular es probablemente lo que cumple con los requisitos funcionales
  • Ember Js: interesante, pero no estoy seguro de qué tan maduros son los datos de ember y el soporte para los casos de uso
  • Reaccionar: rápido, pero no estoy seguro de cuánta programación se necesita para obtener la funcionalidad de formulario genérico. ¿Añadir?
  • KnockoutJs: parece que también requiere mucha programación, pero tal vez haya algún complemento para la tarea
  • jsonform por descripción cumple con los requisitos, pero no estoy seguro de qué tan bien funciona realmente
  • json-editor es otra biblioteca para formularios que usan json-schema extendido y también parece ser adecuado
  • AlpacaJs tiene mucha funcionalidad, puede hacer lo que se requiere, pero parece demasiado grande con muchas dependencias y también requisitos demasiado estrictos en las versiones. (tal vez, esta es una evaluación incorrecta)

Seguramente hay otras opciones.

¿Qué se puede recomendar de lo anterior o de lo contrario?

Gracias por compartir su investigación, Alpaca es lo que estaba buscando y aún se mantiene.

Respuestas (1)

Para un formulario genérico en React, necesitará saber lo suficiente sobre los controladores de eventos de JavaScript y HTML básico. Eche un vistazo a esta guía y si es demasiado desalentador, entonces probablemente no sea el camino a seguir para usted:

https://reactjs.org/docs/forms.html

Si después de revisar el código anterior, encuentra que no es una tarea desalentadora para usted, le alegrará saber que React funcionaría con Bootstrap y puede seguir la guía aquí:

https://facebook.github.io/create-react-app/docs/adding-bootstrap

Gracias. React es, por supuesto, una buena sugerencia ahora. Pero la pregunta es sobre proporcionar el esquema json (más quizás algunas sugerencias, como en el caso de alpaca) y obtener el formulario. No quiero representar una forma concreta (generalmente es trivial en cualquier marco), quiero representar un esquema dado (posiblemente generado dinámicamente).