Infinite loop when using nextLink in GET /me/people response

オープン
#1,656 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
node.js, typescript
領域
api

調査の方向性

Start with the Node client entry point shown in the report, client.api('/me/people'), and reproduce the response using SDK version 3.0.7. Inspect whether the returned @odata.nextLink preserves the same results and skip=0; done means pagination advances or omits nextLink when no people remain.

索引モデルが issue の本文から書いたものです。

説明

Bug Report

Prerequisites

  • Can you reproduce the problem?
  • Are you running the latest version?
  • Are you reporting to the correct repository?
  • Did you perform a cursory search?

For more information, see the CONTRIBUTING guide.

Description

In my app, I'm using the people API to return a list of relevant people to the logged-in user. I'm then taking the nextLink in the API response to request the remaining people, but this results in an infinite loop. After taking a closer look, I noticed that the skip param value in the @odata.nextLink URL is 0, which I believe is the culprit.

Steps to Reproduce

For brevity, I'm including code to get the initial nextLink response, but I can include my looping logic if needed.

import { Client } from '@microsoft/microsoft-graph-client';

const client = Client.init({
    authProvider: (done) => done(null, 'ACCESS_TOKEN')
  });

let request = client.api('/me/people');

const properties = [
  'id',
  'displayName',
  'givenName',
  'surname',
  'scoredEmailAddresses',
  'phones'
];

request = request.select(properties);

const response = await request.get();
console.log(response['@odata.nextLink']);

The console should log https://graph.microsoft.com/v1.0/me/people?%24select=id%2cdisplayName%2cgivenName%2csurname%2cscoredEmailAddresses%2cphones&%24skip=0.

Expected behavior: The skip param in the @odata.nextLink URL should be offset by the number of returned results in order to request the following "page." If there are no more people to return, @odata.nextLink should be undefined.

Actual behavior: The @odata.nextLink URL in the response has a skip param of 0, thereby returning the same results in following requests and resulting in an infinite loop.

Usage Information

SDK Version - 3.0.7

  • Node (Check, if using Node version of SDK)

Node Version - 20.11.1

主要言語
TypeScript
スター
833
フォーク
240
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoftgraph/msgraph-sdk-javascript のほかの issue

microsoftgraph/msgraph-sdk-javascript の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。