为前端准备通用的增删改查的数据接口,大家有没有好的思路

2019-09-18 10:20:11 +08:00
 daijinming

我考虑重写一套通用的 [增删改查的数据接口] ,这样就可以不用费劲再开发这样简单的 CRUD 接口来,不知道大家能不能谈谈各家的思路,借鉴一下

10452 次点击
所在节点    程序员
106 条回复
chinvo
2019-09-18 11:00:02 +08:00
@daijinming #15 既然这样你也是要在后端验证单一条目 crud 权限的,如果只是感觉写 viewmodel 麻烦,可以和 ef 共用 model ( ef 的 model 可以直接拿给 mvc 当 vm 用)

或者看看 parse-server
mcfog
2019-09-18 11:14:39 +08:00
馊主意

这和写一个巨大的 main()处理所有业务有什么区别呢,等客户端发版了不能改了,产品需求又改了,你这个接口就得 if 插入 A 表记录 {一坨业务} if 删除 B 表记录 {另一坨业务}

业务上是不同的对象操作就应该写不同的接口,如果你写一组朴素的 CURD 的接口还觉得费劲,那你要做的是做或者加强你的框架来减少这类接口的开发成本,而不是写一个通用的接口然后等着需求迭代把他变成怪物
StarkWhite
2019-09-18 11:15:15 +08:00
之前用有个人在 v 站推广自动生成 CRUD 的工具,和你这个思路一样吧?
https://www.v2ex.com/t/507187
daijinming
2019-09-18 11:18:31 +08:00
@StarkWhite 不一样,我考虑的是不用后端针对每个表单做开发,提供一个可以访问表单的通用接口,无需为一些简单需求,比如查询、更新哪些字段开发代码。而不是自动生成代码
StarkWhite
2019-09-18 11:26:38 +08:00
@daijinming 像你这个 List_InParams 不也是自动生成的?还是手写的?
mrobot
2019-09-18 12:13:23 +08:00
你其实要的是动态表单功能
hellodigua
2019-09-18 12:22:16 +08:00
@daijinming 按你 24 楼的说法,你思路都有了,按照 RESTful 的规范开发一套接口,接口末尾用 key 做识别不同的表单,然后跟前端约定好分页、查询等的规范就好了,不明白你的疑惑是什么
StarkWhite
2019-09-18 12:26:55 +08:00
@hellodigua 这样做就是 mybatis-plus 那种了
tabris17
2019-09-18 12:31:08 +08:00
胆子放开点,步子迈大些

不如直接把 SQL 接口暴露给前端 /狗头
loading
2019-09-18 12:31:29 +08:00
只要一个接口:
post
/api/crud
参数 sql

你让前端自己拼 sql 过来,你直接给数据库跑就行了,反正是普通表,哈哈
daijinming
2019-09-18 12:31:58 +08:00
@StarkWhite 参数字段需要前端出入,前台手写,后台不开发任何代码了
daijinming
2019-09-18 12:32:50 +08:00
@tabris17
@loading 这个我可不敢,前端也不会 SQL 语句
daijinming
2019-09-18 12:35:11 +08:00
@hellodigua 亲啊,疑惑在标准,前台采用 graphql 标准看看前台能否接受,后台采用声明 ORM,还是直接拼 SQL,那种更灵活。希望能集思广益,征求下前后台开发的意见
oott123
2019-09-18 12:41:39 +08:00
postgrest 不知道你听说过没有
确实有这样用的,不过后端逻辑一般就从后端移动到了数据库上
tinycold
2019-09-18 12:41:41 +08:00
项目中用了一段时间的 GraphQL,劝退,坑还是不少,一切都是美好的想象,我现在只想 RESTful。

这种需求不是该上 BFF 吗?用 Nestjs 搞个 BFF 服务,让说不定还没让前端自己去折腾
wangxiaoaer
2019-09-18 12:46:55 +08:00
Postgresful 好像是这个,基于 pg 的表自动生成 restful 接口。

但最大的问题还是关联了。
encro
2019-09-18 12:53:19 +08:00
firebase,aliyun,qcloud 等的云函数。
xuanbg
2019-09-18 12:55:33 +08:00
顺便问下,那个人来推广 apijson 了吗?
encro
2019-09-18 12:57:47 +08:00
django rest, yii gii+ rest, 野狗, leancloud,都有类似的吧

我的一篇 blog 不完全搜集了类似 firebase 的开源程序。

https://c4ys.com/archives/1850
encro
2019-09-18 12:59:16 +08:00
主要考虑的是权限问题(细化到数据,字段级别的权限控制)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/601728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX