V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
k4kklong
V2EX  ›  Python

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

  •  
  •   k4kklong · 2019-04-24 09:41:26 +08:00 · 1967 次点击
    这是一个创建于 2039 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    然而 restful 都不好用的场景,drf 用起来就很别扭。
    zqx
        4
    zqx  
       2019-04-24 10:30:27 +08:00 via Android
    恰好和后端对接过这个库生成的接口,GET POST DELETE PATCH CREATE 这几个比较常用,感觉可扩展性不强,必须按照规范来。
    gsj987
        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 会不太适应。
    lybcyd
        6
    lybcyd  
       2019-04-24 10:49:44 +08:00 via Android
    Spring data rest 应该差不多,建个 model 继承一下 jpa 接口就可以了
    感觉这种只适合单纯的资源类模型,业务逻辑复杂一点的就不够方便了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3827 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 05:15 · PVG 13:15 · LAX 21:15 · JFK 00:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.