使用 flask-restless 创建 API 个响应

Creating API responses with flask-restless

假设我在 SqlAlchemy 中有两个模型:

User 有一个指向 UserType

的外键

我已正确配置 flask-restless 以将这些模型用作 API 端点:

但默认情况下,当我访问这些端点中的任何一个时,我都会在响应中获得与每个对象关联的相关数据:

随着数据的增长,这肯定会导致大量的开销。如果我只想获取系统支持的 UserType 列表,所有关联的用户都会回来。通常 API 会为相关资源生成 link:

有没有人从 flask-restless 反应中得到这些 links?

这似乎是一个已知问题,已在 GitHub 上活跃了很长时间。不确定开发者是否打算修复它:

https://github.com/jfinkels/flask-restless/issues/168#issuecomment-69821642

我最终选择了 flask-restful 并构建了我自己的端点。

从发布 0.17.0

开始实施

如果您的 User 模型如下所示:

class User(Base):
    id = Column(Integer, primary_key=True)
    username = Column(String)
    user_type_id = Column(Integer, ForeignKey("user_type.id"))
    user_type = relationship(UserType, backref=backref('users'))

你的 UserType 模型看起来像:

class UserType(Base):
    id = Column(Integer, primary_key=True)
    type = Column(String)
    description = Column(String)

然后您可以通过向...发出 GET 请求来获取特定 user_type 的所有 users...

/api/user_type/1/users

...其中后缀 /users/ 由传递给 relationship()backref=backref('users') 属性指定 [= User 中的 45=] 列,而 1user_type[=41 的 id =]正在查询中。