0

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

  • UserType
  • User

User有一个外键UserType

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

  • /api/user
  • /api/user_type

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

  • 每个User都有对应的UserType对象嵌套在响应中
  • 每个都有一个嵌套在响应中UserType的集合User

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

  • /api/user/1/user_type
  • /api/user_type/1/users

有没有人从烧瓶不安的反应中得到这些链接?

4

2 回答 2

0

看起来这是一个在 GitHub 上活跃了很长时间的已知问题。不确定开发人员是否计划修复它:

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

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

于 2015-01-20T22:02:57.583 回答
0

现在从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 请求来 获取所有users特定...user_type

/api/user_type/1/users

...其中后缀/users/backref=backref('users')由传递给relationship()中的user_type列的属性指定User1是被查询iduser_type的。

于 2016-08-20T19:37:41.820 回答