2015-01-13 59 views
0

比方說,我在SQLAlchemy的兩種型號:與創建API響應燒瓶坐立不安

  • UserType
  • User

User有一個外鍵UserType

我有正常配置的燒瓶 - 不安地將這些模型用作API端點:

  • /api/user
  • /api/user_type

但默認情況下,當我訪問這兩種端點,我得到的響應中的每個對象相關聯的相關數據:

  • 每個User有對應嵌套在響應中的UserType對象
  • 每個UserType有嵌套在響應

的數據增長了很多這必然會造成大量的開銷的User的集合。如果我只想獲取系統支持的UserType列表,則所有關聯的用戶都將返回。通常,一個API會生成一個鏈接,相關的資源:

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

有沒有人得到這些鏈接出瓶,焦躁不安的反應?

回答

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) 

然後您可以通過i獲取特定user_type的所有users請求GET請求...

/API/USER_TYPE/1 /用戶

...其中下標/用戶backref=backref('users')屬性傳遞給relationship()用於UserUSER_TYPE柱指定/和是user_type被查詢的id