Azure-devops restapi-ページングとレート制限

Sep 21 2020

Azure-Devopsエンティティデータ(チーム、プロジェクト、リポジトリ、メンバーなど)をプルして、そのデータをローカルで処理しようとしていますが、レート制限とページ付けに関するドキュメントが見つかりません。誰かがそれを経験したことがありますか?

メンバーAPIのページ付けに関するドキュメントがいくつかあります。
https://docs.microsoft.com/en-us/rest/api/azure/devops/memberentitlementmanagement/members/get?view=azure-devops-rest-6.0

しかし、それだけ
です。たとえば、リポジトリなど、どのgitエンティティのドキュメントも見つかりませんでした。
https://docs.microsoft.com/en-us/rest/api/azure/devops/git/repositories/list?view=azure-devops-rest-6.0

誰かが私に正しいドキュメントを教えてくれるなら、あるいはこれらの主題に光を当てることができればそれは素晴らしいことです。

ありがとう。

回答

LeoLiu-MSFT Sep 22 2020 at 09:44

レート制限とページ付けに関するドキュメントが見つかりません。誰かがそれを経験したことがありますか?

サービス制限とレート制限に関するドキュメントがあり、すべてのプロジェクトと組織が対象とするサービス制限とレート制限が紹介されています。

律速について:

Azure DevOps Servicesは、多くのSoftware-as-a-Serviceソリューションと同様に、マルチテナンシーを使用してコストを削減し、スケーラビリティとパフォーマンスを強化します。これにより、ユーザーはパフォーマンスの問題や、共有リソースの他のユーザーの消費量が急増した場合の停止に対しても脆弱になります。これらの問題に対処するために、Azure DevOps Servicesは、個人が消費できるリソースと、特定のコマンドに対して実行できる要求の数を制限します。これらの制限を超えると、後続のリクエストが遅延またはブロックされる可能性があります。

詳細については、レート制限のドキュメントを参照できます

ページネーションの場合、通常、REST APIにはページ付けされた応答があり、ADO REST APIには通常、各応答のページごとに100/200(どのAPIに応じて)の制限があります。次のページ情報を取得する方法は、応答ヘッダーを参照し、x-ms-continuationtokenこれを次の要求パラメーターとして使用することですcontinuationToken。

しかし、Microsoftはこれを十分に文書化していない-これは継続トークンをサポートするすべてのAPI呼び出しで言及されているはずです。

ビルド-リスト:

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={definitions}&continuationToken={continuationToken}&maxBuildsPerDefinition={maxBuildsPerDefinition}&deletedFilter={deletedFilter}&queryOrder={queryOrder}&branchName={branchName}&buildIds={buildIds}&repositoryId={repositoryId}&repositoryType={repositoryType}&api-version=5.1

上記のRESTAPIをで使用すると$top=50、予想どおり、50が返され、「x-ms-continuationtoken」というヘッダーが返されます。結果をcontinuationtoken次のようにループ出力できます。

詳細については、この同様のスレッドを確認できます。

1 AnkitPrasad Sep 29 2020 at 04:43

私はあなたがクエリパラメータを持っているほとんどのAPIについて $top/$スキップ。これらのパラメーターを使用して、ページ付けを行うことができます。デフォルトの実行では、応答に200個のドキュメントが含まれるとします。次の実行では、リクエストのクエリパラメータに$ skip = 200を指定して、これらの200をスキップし、次の200アイテムを取得します。応答のcount属性が0になるまで繰り返しを続けることができます。

これらのAPIの場合、これらのパラメーターがない場合は、LeoLiu-MSFTで説明されているように継続トークンを使用できます。

BenHulan Nov 02 2020 at 22:12

あなたが渡すことができますように見えます$topし、continuationTokenAzureのGitの参考文献を一覧表示します。

ドキュメントはここにあります:

https://docs.microsoft.com/en-us/rest/api/azure/devops/git/refs/list?view=azure-devops-rest-6.0