我正在设计一个UI界面,用于列出给定用户或组织的所有代码库。这是使用树形格式,其中第一级是代码库,第二级层次结构(子节点)应该是每个分支,如果展开的话。
我正在使用一种机制,它有意不需要我拉取给定代码库的所有分支列表,因为API对API调用有速率限制。相反,我只需要指示它包含多少子节点,而不实际为它们分配值(直到用户展开它)。我几乎确定获取代码库列表包括结果中的分支计数,但令我失望的是,我没有看到它。我只能看到forks、stargazers、watchers、issues等的计数。除了分支计数之外,其他都有。
UI的意图是在用户展开父节点后异步加载实际分支来填充,但它事先会知道要填充子节点的数量,因此立即显示每个分支的空占位符。再次强调,由于需要避免过多的API调用,所以在用户滚动时,它将使用分页来仅获取所需显示给用户的页面,并将其缓存以供以后显示。具体而言,我正在使用Delphi的Virtual TreeView。
我正在使用一种机制,它有意不需要我拉取给定代码库的所有分支列表,因为API对API调用有速率限制。相反,我只需要指示它包含多少子节点,而不实际为它们分配值(直到用户展开它)。我几乎确定获取代码库列表包括结果中的分支计数,但令我失望的是,我没有看到它。我只能看到forks、stargazers、watchers、issues等的计数。除了分支计数之外,其他都有。
UI的意图是在用户展开父节点后异步加载实际分支来填充,但它事先会知道要填充子节点的数量,因此立即显示每个分支的空占位符。再次强调,由于需要避免过多的API调用,所以在用户滚动时,它将使用分页来仅获取所需显示给用户的页面,并将其缓存以供以后显示。具体而言,我正在使用Delphi的Virtual TreeView。
procedure TfrmMain.LstInitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode;
var ChildCount: Cardinal);
var
L: Integer;
R: TGitHubRepo;
begin
L:= Lst.GetNodeLevel(Node);
case L of
0: begin
//TODO: Return number of branches...
R:= TGitHubRepo(Lst.GetNodeData(Node));
ChildCount:= R.I['branch_count']; //TODO: There is no such thing!!!
end;
1: ChildCount:= 0; //Branches have no further child nodes
end;
end;
有没有什么方法可以让我获取存储库分支计数而无需预先获取完整列表?