在 Python 的 web 框架 Django 中有个 django-rest-framework,写几个简单的类就可以搭出一套将数据库表直接映射成的 REST 接口,并处理好了 http 动作和状态,包含 search 和 filter,还有权限断路器等东西。
由于我不熟悉其他语言,想问下其他语言里有没有这样好用的工具,或者类似的好用不啰嗦的声明式框架,以便需要用到的时候能快速的上手其他语言。
我觉得 java 和 golang 中应该是有的。
1
luoyou1014 2019-04-24 09:45:08 +08:00
最早搞这套模式的应该是 rails 吧,然后被其他框架学走了,这个模式比比皆是,rails 是鼻祖,php 里面我用过 yii 也是这样,但说实话这中模式并不是很好用,表面上节约了不少工作量,实际中使用的时候要做很多 hack 到项目中。
|
2
Lax 2019-04-24 10:16:54 +08:00
看了 drf 的文档,感觉不太方便,还要手工写 router。
和 rails 还是不太一样,rails 默认是 REST 风格,没有 search 的路由(只有 find )。 现在有了 graphql,用起来更方便 |
3
est 2019-04-24 10:21:25 +08:00
走 restful 路线 drf 当然很好用了。
然而 restful 都不好用的场景,drf 用起来就很别扭。 |
4
zqx 2019-04-24 10:30:27 +08:00 via Android
恰好和后端对接过这个库生成的接口,GET POST DELETE PATCH CREATE 这几个比较常用,感觉可扩展性不强,必须按照规范来。
|
5
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 会不太适应。 |
6
lybcyd 2019-04-24 10:49:44 +08:00 via Android
Spring data rest 应该差不多,建个 model 继承一下 jpa 接口就可以了
感觉这种只适合单纯的资源类模型,业务逻辑复杂一点的就不够方便了 |