[JSON API 1.0 规范] Flask-REST-JSONAPI 一个让你和主管停止争吵的轮子!

2019-03-31 00:50:15 +08:00
 nuance2ex

[ JSON API 1.0 规范] Flask-REST-JSONAPI 一个让你和主管停止争吵的轮子!

和主管为一个接口输出真吵了一天,搞得都想离职,求怎么破 https://www.v2ex.com/t/546096?p=1

JSON API 1.0 规范 官网第一句话:“ If you ’ ve ever argued with your team about the way your JSON responses should be formatted, JSON:API can be your anti-bikeshedding tool.” “如果你和你的团队曾经争论过使用什么方式构建合理 JSON 响应格式, 那么 JSON API 规范就是你的核武器。”

最近开发一个 CRM 项目,后端 API 服务器一开始在Flask-RestfulFlask-Restless之间纠结,由于 Flask-Restful 封装程度低,需要自己实现的功能太多;纠结地选择了数据库映射型框架Flask-Restless,这个框架至少实现了 JSON API 1.0 规范。可结果发现是个天坑!!外键查询,只能逐条查询,不支持联表或自定义查询方式! Github issue 里 2016 年就有人反应过这个问题,作者也表示是设计架构问题,无能为力。

绝望,感觉要自己徒手造个摩天轮了。

曙光,就在这个 issue 下面,有人表示已经将项目完整迁移到 Flask-REST-JSONAPI,一个完全陌生的框架,至少国内完全搜不到这个框架。

我查了下,**文档齐全!规范标准!层次清晰!拓展容易!**感觉就是 Flask 中的 Flask。

框架遵循 Restful JSON API 1.0 规范,意味着在客户端也有实现该规范的轮子可以用!而且 Flask-REST-JSONAPI 这个框架真的好用到爆炸!作者一句话总结他的框架:

"It combines the power of Flask-Restless and the flexibility of Flask-RESTful around a strong specification JSONAPI 1.0."

结合了 Flask-Restless 的能力和 Flask-RESTful 的灵活性,并且严格遵守 JSONAPI 1.0 规范。

写完了一个项目,总结下这个框架优点:

Github:https://github.com/miLibris/flask-rest-jsonapi

文档:https://flask-rest-jsonapi.readthedocs.io/en/latest/

3664 次点击
所在节点    程序员
14 条回复
di94sh
2019-03-31 01:08:37 +08:00
flask restful 注册错误处理是是失效的。
lynskylate
2019-03-31 02:06:13 +08:00
相比 django rest framework 如何?
ryd994
2019-03-31 02:40:29 +08:00
主管拒绝接受此规范
congeec
2019-03-31 03:46:55 +08:00
程序员拒绝接受此规范
plqws
2019-03-31 06:31:02 +08:00
Patreon 的 API 就是这个规范的,其实用起来挺让人奔溃的,看起来不错而已,实际用起来的话会发现极其不灵活
Abbeyok
2019-03-31 07:27:11 +08:00
API 用 jsonify 咋样?
jisibencom
2019-03-31 08:29:15 +08:00
不是太懂,现在接口太多,如何灵活调用有没有通用的软件或工具,php,python
forestLittleBear
2019-03-31 09:19:17 +08:00
@jisibencom 官方文档。
TommyLemon
2019-03-31 18:55:47 +08:00
先收藏一下
nuance2ex
2019-03-31 23:42:26 +08:00
@lynskylate django rest 对标的是 flask-restful。从灵活度的角度来说,可以自由拓展;但灵活性的另一面就是封装程度低,什么都要自己实现。
nuance2ex
2019-03-31 23:48:45 +08:00
@plqws 这个规范返回的 JSON 数据层次比较冗余,客户端直接提数据比较麻烦,最好用实现该规范的反序列解析器。我自己写完客户端解析器后,发现其实已经有现成的 JS 轮子了。
nuance2ex
2019-03-31 23:52:09 +08:00
@Abbeyok 简单接口可以用 jsonify,一旦项目复杂起来,可复用性和可维护性就会骤降。
Outliver0
2019-05-27 13:39:46 +08:00
@nuance2ex 老哥,有翻译好吗,我来学习
nuance2ex
2019-10-06 08:57:59 +08:00
@Outliver0 来自越时空的回复。已经翻译好了。

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

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

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

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

© 2021 V2EX