在其他语言社区里有没有像 django 的 drf 这样的声明式的 REST 框架。

2019-04-24 09:41:26 +08:00
 k4kklong

在 Python 的 web 框架 Django 中有个 django-rest-framework,写几个简单的类就可以搭出一套将数据库表直接映射成的 REST 接口,并处理好了 http 动作和状态,包含 search 和 filter,还有权限断路器等东西。

由于我不熟悉其他语言,想问下其他语言里有没有这样好用的工具,或者类似的好用不啰嗦的声明式框架,以便需要用到的时候能快速的上手其他语言。

我觉得 java 和 golang 中应该是有的。

2001 次点击
所在节点    Python
6 条回复
luoyou1014
2019-04-24 09:45:08 +08:00
最早搞这套模式的应该是 rails 吧,然后被其他框架学走了,这个模式比比皆是,rails 是鼻祖,php 里面我用过 yii 也是这样,但说实话这中模式并不是很好用,表面上节约了不少工作量,实际中使用的时候要做很多 hack 到项目中。
Lax
2019-04-24 10:16:54 +08:00
看了 drf 的文档,感觉不太方便,还要手工写 router。
和 rails 还是不太一样,rails 默认是 REST 风格,没有 search 的路由(只有 find )。
现在有了 graphql,用起来更方便
est
2019-04-24 10:21:25 +08:00
走 restful 路线 drf 当然很好用了。

然而 restful 都不好用的场景,drf 用起来就很别扭。
zqx
2019-04-24 10:30:27 +08:00
恰好和后端对接过这个库生成的接口,GET POST DELETE PATCH CREATE 这几个比较常用,感觉可扩展性不强,必须按照规范来。
gsj987
2019-04-24 10:48:44 +08:00
drf 需要显试配置的地方还是不少,CRUD 之外的操作,需要更多的带入到框架的逻辑内,业务复杂的时候反而显得麻烦。不过他帮我们把一些基础建设都做好了,在 Django 体系里暂时没有做的比他更好的。

不过主要 Django 本身的体系和结构也比较简单,而且是大包大揽的方式,所以 drf 的处理无可厚非。在一些更有分层和结构要求的框架和语言下,类似的框架会更有通用性,解决的问题更专一,当然使用起来也更复杂。

nodejs 里 nestjs 框架有一个 nestCRUD https://github.com/nestjsx/crud 我觉得是比较接近 drf 的,不过他是用了 nestjs 的分层架构,所以和 django 还是有很多不同。但是鉴于 django 和 drf 比他们成熟的多,而且他们俩本身是一揽子方案,没有外部依赖,所以一开始用 nestjs + nestCRUD 会不太适应。
lybcyd
2019-04-24 10:49:44 +08:00
Spring data rest 应该差不多,建个 model 继承一下 jpa 接口就可以了
感觉这种只适合单纯的资源类模型,业务逻辑复杂一点的就不够方便了

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

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

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

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

© 2021 V2EX