假设我在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
有没有人从烧瓶不安的反应中得到这些链接?
答案 0 :(得分:0)
看起来这是一个在GitHub上长时间活跃的已知问题。不确定开发人员是否计划修复它:
https://github.com/jfinkels/flask-restless/issues/168#issuecomment-69821642
我最终选择flask-restful
并建立自己的终端。
答案 1 :(得分: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 / 由传递给backref=backref('users')
的{{1}}属性指定,用于{{user> 列中的{em> user_type 列1}}, 1 是要查询的 user_type 的relationship()
。