【发布时间】:2014-08-03 17:13:34
【问题描述】:
我有一个实体,其中有多个子集合。在某些情况下,其中一些集合可以包含许多项目 (> 100)。然而,在大多数情况下,大约有 1-10 个,这很好。
当我显示我的主要实体时,如果有超过 10 条记录,我想通过分页显示这些子集合。
由于我不想将我的 JSON 响应包装在一个信封中,我正在使用我在收到时添加到响应中的 Content-Range 标头(例如 Content-Range:实体 11-20/400)收藏品一般。在这种情况下,我得到一个带有多个集合的实体。
(对“GET entities/123?AnotherChildrenCollection.PageSize=15&Children.PageSize=10&AnotherChidrenCollection.PageIndex=1”的示例实体响应
“实体”
{ 编号:123, 孩子:[ { ChildID: 1 }, ... ] // 例如实际总数为 122 AnotherChildrenCollection: [ { ChildID: 1 }, ... ] // 例如实际总数为 130 }
到目前为止,唯一的想法是扩展 Content-Range 标头,所有子集合以逗号分隔并对其进行解析。
例如像这样:
内容范围:entities.Children 0-9/122,entities.AnotherChildrenCollection 15-29/130
是否有更好或更标准的方法来处理这个问题,因为这感觉有点像“黑客”
【问题讨论】:
-
你能不能只在需要的时候得到孩子而不是每次都得到主要实体?
-
我想将它们与主实体同时显示,并且我想避免为每个子集合向服务器发出请求。这是为了获得更好的用户体验,而不是用户必须从 UI 展开每个集合才能看到那里的数据。
标签: json rest collections paging children