图形API分页 https://graph.microsoft.io/en-us/docs/concepts/paging解释响应将包含一个字段@odata.nextLink
其中将包含一个skiptoken
指向下一页内容。
当我测试 API 时,我得到了一个完全合格的 MS Graph URL,其中包含skiptoken
作为查询参数。例如。以下是我获得的该字段的值@odata.nextLink
在响应 JSON 中。https://graph.microsoft.com/v1.0/users?$top=25&$skiptoken=X%27445370740200001E3A757365723134406F33363561702E6F6E6D6963726F736F66742E636F6D29557365725F31363064343831382D343162382D343961372D383063642D653136636561303437343437001E3A7573657235407368616C696E692D746573742E31626F74322E696E666F29557365725F62666639356437612D333764632D343266652D386335632D373639616534303233396166B900000000000000000000%27
是否可以安全地假设我们总是会获得完整的 URL 而不仅仅是skiptoken
?因为如果这是真的,它有助于避免解析skiptoken
然后将其连接到现有的 URL 以形成完整的 URL。
EDIT- 与 MS Graph API 相比,从 Azure AD Graph API 获取的响应的不同之处在于 JSON 字段@odata.nextLink
仅包含skipToken
而不是完全限定的 URL。
如果您希望所有用户都在单个列表中,可以使用以下代码来实现:
public static async Task<IEnumerable<User>> GetUsersAsync()
{
var graphClient = GetAuthenticatedClient();
List<User> allUsers = new List<User>();
var users = await graphClient.Users.Request().Top(998)
.Select("displayName,mail,givenName,surname,id")
.GetAsync();
while (users.Count > 0)
{
allUsers.AddRange(users);
if (users.NextPageRequest != null)
{
users = await users.NextPageRequest
.GetAsync();
}
else
{
break;
}
}
return allUsers;
}
我在用图形客户端库 https://github.com/microsoftgraph/msgraph-sdk-dotnet
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)