Flask-Restaction - 为 RESTful API 而生的 Web 框架

2016-10-17 12:00:09 +08:00
 guyskk

Flask-Restaction 是什么?

写接口的新姿势,登录接口为例:

def post_login(self, account, password):
    """
    登录

    $input:
        account?str: 用户 ID 或邮箱
        password?str: 密码
    $output: @user
    $error:
        403.UserNotFound: 帐号不存在
        403.WrongPassword: 密码错误
    """
    user = db.run(r.table("user").get(account))
    if not user:
        user = db.first(r.table("user").get_all(account, index="email"))
    if not user:
        abort(403, "UserNotFound", "帐号不存在")
    # ...省略若干逻辑
    g.token = {"type": "login", "id": user["id"]}
    return user

Github: https://github.com/guyskk/flask-restaction


介绍完了,说一些我的碎碎念。

原本我是打算等框架再成熟一些(大概会是半年之后)再来介绍的,但因为一些原因,我决定早点分享给大家。

这个框架从第一个 Commit 到现在有一年多了,内部有两个小项目在用(一个是我自己负责的,另一个是一个学弟负责,题主目前大三)。 还有一个是开源项目PurePage,这个项目很早就开始了, 中间换了一次数据库,最近一次重写是在一周前,我花了两天时间写 API 和接口测试,三天写前端(还没写完), 现在我又没有方向了,不清楚自己到底想把它做成什么样。 暂时先把它当作一个 Demo ,大家可以看生成的API 文档,Chrome打开控制台就能用生成的JS,非常欢迎各位提建议!

另一个原因就是昨天看到Sanic is a Flask-like Python 3.5+ web server that's written to go fast.。 我打算让 Flask-Restaction 适配 Sanic ,这样就能愉快的写异步 API 了。 另外没在这里看到有 Sanic 的讨论,有兴趣的朋友出来聊聊吧。

最后一个原因是我决定这周把英文文档写出来,其实早就有这个想法,但一直畏难+懒,题主英文写作比较菜, 重度依赖词典>﹏<。

4916 次点击
所在节点    Python
10 条回复
cielpy
2016-10-17 12:24:46 +08:00
RethinkDB 不是关门了吗。。
guyskk
2016-10-17 12:29:32 +08:00
@cielpy 还有开源社区,我觉得可以试试
1130335361
2016-10-17 15:47:53 +08:00
贵博的 RSS 好像挂了
guyskk
2016-10-17 16:27:14 +08:00
@1130335361https://github.com/guyskk/guyskk.github.io/blob/master/feed.xml 吗?我没怎么用过 RSS ,可以帮我看看哪里出问题了吗
menc
2016-10-17 16:34:42 +08:00
我问下,和 flask-restful 区别在哪里呢
guyskk
2016-10-17 17:02:31 +08:00
@menc 在各方面都比 flask-restful 更好用,我认为完全可以替代 flask-restful 。
flask-restful 没有的功能 flask-restaction 有,比如自动生成文档。
flask-restful 有的功能, flask-restaction 做的更好,比如请求参数校验,响应结果序列化。
flask-restaction 只有不到 1000 行代码, flask-restful 的代码有几千行,而且 shit 一样。
kangsgo
2016-10-18 02:29:20 +08:00
django 有类似的轮子么
qweweretrt515
2016-10-18 09:57:58 +08:00
建议楼主参考下 django-rest-framework
qweweretrt515
2016-10-18 09:58:16 +08:00
@kangsgo 有啊 django 轮子就是 django-rest-framework ,非常成熟的一个框架
guyskk
2016-10-18 12:04:51 +08:00
@qweweretrt515
django-rest-framework 我了解过,只是没用它写过项目。
flask-restaction 和 django-rest-framework 比较大的区别是 flask-restaction 的校验数据、序列化直接写在 doc string 里面, django 是定义一个类,很像 https://github.com/schematics/schematics 这个库,
flask-restaction 的更像是 json schema ,用来生成文档会更方便。

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

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

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

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

© 2021 V2EX