在clojure / clojurescript表单中是否存在通用CRUD的任何内容

时间:2016-04-18 13:51:18

标签: clojure crud

因此,理想情况下,在我看来,基于单个schema定义,我应该能够在Web上下文中完全生成完整的创建读取更新删除(CRUD),即:

  • client:用于操作的交互式HTML数据表组件,可以使用内联编辑等。
  • client:用于编辑单个记录的表单组件,包括从架构中推断出的验证
  • server:访问数据以填充和更新所述组件的路径(REST端点)
  • server:一种用于在SQL表中保存数据的实现。

理想情况;我只是为具有名称和姓氏和地址字段的Person数据类型定义一个模式,然后调用像(defcrud Person my-person-schema)这样的宏或函数,它可以工作,我可以去一个网页,看看数据表,编辑/删除数据,并将数据一直保存到服务器。

我的问题是:在clojure世界中有什么东西(如上所述)做某事(或部分)吗?

在我最近的第一个完整的clj / cljs项目中,我发现自己为这些基本内容编写了大量代码。在过去,当我使用名为SmartGWT的GWT框架时,我只需要定义一个new ListGrid(myDataSource),并定义一个数据源(相当于模式),其余的被推断出来(至少是某些东西)明智的违约是。)。

SmartGWT的高级开发能够为我需要经常构建的业务应用程序实现真正的快速原型设计。 GWT有其自身的缺点,例如较大的应用程序的编译时间非常慢,而且我必须编写Java,但它是开箱即用的服务器 - 客户端集成的水平。我正在寻找Clojure。

2 个答案:

答案 0 :(得分:3)

clospclosp-crud。这将带你走一条路。

答案 1 :(得分:3)

免责声明,我是closp-crud的作者。

首先,感谢@mac暗示我的图书馆。

其次,你所要求的正是我想要实现的目标,但却以不同的方式。 我讨厌你做推断代码之类的事情时发生的所有魔法。所以我的方法与所有代码不同:

  • html templates
  • 路由
  • 迁移
  • db access

生成,之后可以完全更改 当然这有其他缺点,但我很乐意接受它们。

尽管如此,文档仍然缺乏,我上周启动了http://closp.net的激励,并将继续努力。
如果你需要,我不妨为closp-crud添加文档。

除此之外,我两天前制作了一个介绍性视频:https://www.livecoding.tv/sveri/videos/wrnL1-clojure-closp-webframework-41以非常基本的方式显示了closp和closp-crud的用法。
closp-crud的使用开始大约12分钟。