Jira Cloud REST API の maxResults パラメーターを変更する
Platform Notice: Cloud - This article applies to Atlassian products on the cloud platform.
症状
Jira Cloud REST API エンドポイントは、限られた数の結果を返します。これは、リクエストの maxResults フィールドに渡された値とは異なる場合があります。
例えば、/rest/api/2/search に以下の POST ボディ部でリクエストを送った場合 :
{"jql": "project = PROJ ORDER BY key ASC","startAt":0,"maxResults":1000,"fields":["id","key","summary","status.id","issuetype","timeoriginalestimate","timeestimate"]}
返される課題数は、レスポンスの maxResults フィールドの値の数に制限されます。これは、リクエスト で送った maxResults の値 1000 よりも少ない可能性があります。
原因
大きな数のアイテムを返すリソースのレスポンス サイズを制限することで、すべての Jira クラウドユーザーのパフォーマンスを改善します。各 API エンドポイントによって、返されるアイテムの数に対する制限は異なる場合があります。その結果、リクエスト内の maxResults は、その REST API エンドポイントで定義されている制限を超える場合に上書きされます。
ソリューション
返ってきた JSON オブジェクトで提供される、対象の API の maxResults 制限を参照し、ページネーションを使って必要な数の結果をチャンクで取得します。maxResultsの上限は今後変わる可能性があり、API リソースによっても異なるため、REST API クライアントがリクエストを行う際に maxResults の値をプログラムによって確認することを推奨します。
例:
{"jql": "project = PROJ ORDER BY key ASC","startAt":0,"maxResults":50,"fields":["id","key","summary","status.id","issuetype","timeoriginalestimate","timeestimate"]}
{"jql": "project = PROJ ORDER BY key ASC","startAt":50,"maxResults":50,"fields":["id","key","summary","status.id","issuetype","timeoriginalestimate","timeestimate"]}
その他の情報
アトラシアン REST API ポリシーに記載の通り、ページングされたデータのデフォルト サイズおよび最大サイズは API の一部とはみなされず、予告なく変更される場合があります。
個々の Jira Cloud REST API に設定された maxResults 制限は他の API エンドポイントには適用されない可能性があり、変更されないことは保証するものではありません。