Flask-REST-JSONAPI

Flask-REST-JSONAPI 是一款快速构建REST API的Flask插件。框架在遵循JSONAPI 1.0规范的同时,保持着极强的灵活性。框架设计之初,就考虑到了生产环境的复杂性,所以在Flask-REST-JSONAPI中就引入了逻辑数据抽象层的概念,框架中叫做Resource(资源)。Resource可以通过**Data layer(数据层)**接入任何ORM框架或数据库。(译者注:逻辑数据对应的是物理数据,数据库储存的是物理数据,但有时API返回的数据,不能直接返回数据库的物理数据,需要进行逻辑加工后,才能返回给用户。)

核心概念


_images/schema.png

  • JSON API 1.0 规范](http://jsonapi.org/):广受欢迎的REST JSON API规范,规定了客户端与服务端进行数据交互的方式。遵循规范有助于进行团队合作开发,因为规范的表达十分精确,且易于分享。正是由于规范,API也包含了许多特性,像健壮的request和response结构、过滤、分页、稀疏字段、外键查询以及强大的错误格式化等。
  • 逻辑数据抽象层:实际开发中,我们需要返回数据资源给客户端,但通常来说,返回给用户的数据并与数据库的表结构完全相同。比如,有时我们不想暴露锁一个表的所有属性,亦或需要计算额外的属性,亦或创建资源的数据来自于不同的数据库。Flask-REST-JSONAPI 通过Marshmallow / marshmallow-jsonapi 为我们创建逻辑数据抽象层,便于你以灵活的方式暴露你的数据。
  • 数据层:数据层在框架中作为数据CRUD的接口,将资源和数据的连接起来。正是由于引入了数据层,我们能使用任何数据库或者ORM框架来对接资源。框架已经实现了SQLALchemy ORM的所有功能,但同时我们也可以定制数据层,来接入自己数据库的数据。我们还可以在数据层接入多个数据库和ORM,发送通知或在CRUD过程中加入定制功能。

特性


Flask-REST-JSONAPI 拥有的特性包括:

  • 关系数据管理
  • 强大的过滤功能
  • 外键包含查询
  • 稀疏字段
  • 分页
  • 排序
  • 权限管理
  • OAuth支持

用户指南


以下文档演示了如何配合Flask使用Flask-REST-JSONAPI。

目录

API参考


如果你想要查找函数、类或方法的具体信息,以下文档可供你参考。