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

2019 年 9 月 18 日
 daijinming

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

12701 次点击
所在节点    程序员
106 条回复
nuance2ex
2019 年 9 月 18 日
jsonapi 1.0
daijinming
2019 年 9 月 18 日
@tinycold 好像经历来好多,rest 美好
daijinming
2019 年 9 月 18 日
@tinycold BFF 之前还是没怎么听说过,使用过吗,怎么样?
daijinming
2019 年 9 月 18 日
@encro 重点不应改在这里
wisetc
2019 年 9 月 18 日
finale + sequelize = `finale-rest`
guolaopi
2019 年 9 月 18 日
原来公司有个大佬推广过 Odata
不知道符不符合要求,你可以看看。
.NET 的
daijinming
2019 年 9 月 18 日
@guolaopi 感谢老兄
SjwNo1
2019 年 9 月 18 日
graphql 一般用来查吧...
StarkWhite
2019 年 9 月 18 日
tk.mybatis,MyBatisCodeHelper
StarkWhite
2019 年 9 月 18 日
@SjwNo1 query 用来查,mutation 用来 增删改
LokiSharp
2019 年 9 月 18 日
PostgREST
StarkWhite
2019 年 9 月 18 日
昨天看到有个支持在 URL 参数里写 key@=1&key==2&key<=3&page=1&pageSize=10 这种能自定义条件的开源项目
daijinming
2019 年 9 月 18 日
@StarkWhite 至于卸载 URL 里还是 form 里应该没啥太大区别吧,哪个项目,分享下吧
StarkWhite
2019 年 9 月 18 日
C# 写的,Biarity/Sieve
GET /GetPosts

?sorts= LikeCount,CommentCount,-created // sort by likes, then comments, then descendingly by date created
&filters= LikeCount>10, Title@=awesome title, // filter to posts with more than 10 likes, and a title that contains the phrase "awesome title"
&page= 1 // get the first page...
&pageSize= 10 // ...which contains 10 posts

这个就是你想要做的效果吧?
https://github.com/Biarity/Sieve#send-a-request
daijinming
2019 年 9 月 18 日
@StarkWhite 3Q,参考一下
StarkWhite
2019 年 9 月 18 日
@StarkWhite 看了下文档和 issue,这个貌似也只支持单表
StarkWhite
2019 年 9 月 18 日
@daijinming 不如 OData
GET http://host/service/Customers?
$filter=Orders/any(o:o/TotalPrice gt 100)
&$expand=Orders($compute=Price mult Qty as TotalPrice

;$select=Name,Price,Qty,TotalPrice)
Varobjs
2019 年 9 月 18 日
那个男人
soulzz
2019 年 9 月 18 日
GraphQL 劝退+1
自由度太高导致一切都要自己配,然后很可能导致严重的性能问题
建议 restful 解决
StarkWhite
2019 年 9 月 18 日
@soulzz 自由度不高的话怎么支持前端定制数据和结构呢?
性能问题看取舍,而且有 dataloader 可以解决

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

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

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

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

© 2021 V2EX