この記事の内容は、API が 10 個の情報しか返さない理由についてです。必要な方は参考にしていただければ幸いです。
API が 10 個の情報のみを返す理由
多くの情報を返す可能性のある一部の API メソッドでは、情報をより適切に表示するために、返す必要がある情報がたとえば、使用可能なミラーをクエリすると、デフォルトでは 40 個のデータが返され、結果は 1 ページごとに 10 個に分割され、合計 4 ページの情報のみが返されます。返されるデータは一度に不完全になるため、PageSize と PageNumber を使用して制御できます。
たとえば、画像をクエリし、杭州地域で現在利用可能な公式の公開画像をクエリすると、クエリ結果の TotalCount に 39 個の項目が表示され、すべてを取得したい場合、結果はデフォルトで 4 ページに分割されます。一度、リクエストに PageSize を追加し、39 より大きい数値に設定できます (Java SDK を使用する場合は、Request オブジェクトの setPageSize メソッドを使用して PageSize を 39 より大きい数値に設定できます)。リクエスト後、一度に39ミラー分のデータを返すことができます。
以下は Java SDK のデモです:
デフォルトでは、PageSize 値は 10 です (Java SDK が設定されていないため) PageSize 値。getPageSize を使用すると null が返され、API サーバーはデフォルトで PageSize を 10 に設定します):
コード スニペットは次のとおりです:
DescribeImagesRequest describe = new DescribeImagesRequest(); //describe.setPageSize(50);//默认情况下不设置的话PageSize就是10 describe.setRegionId("cn-hangzhou"); describe.setImageOwnerAlias("system"); System.out.println("当前请求的PageSize大小:"+describe.getPageSize()); DescribeImagesResponse response = client.getAcsResponse(describe); System.out.println("镜像总数:"+response.getTotalCount()); System.out.println("返回的响应中镜像数量="+response.getImages().size());
setPageSize を使用して PageSize 値を 50 に設定すると、すべての画像を一度に返すことができます:
コード スニペットは次のとおりです:
DescribeImagesRequest describe = new DescribeImagesRequest(); describe.setPageSize(50);//这里在Request中通过setPageSize()方法将每页显示的数量设置为50 describe.setRegionId("cn-hangzhou"); describe.setImageOwnerAlias("system"); System.out.println("当前请求的PageSize大小:"+describe.getPageSize()); try { DescribeImagesResponse response = client.getAcsResponse(describe); System.out.println("镜像总数:"+response.getTotalCount()); System.out.println("返回的响应中镜像数量="+response.getImages().size());
説明
PageSize の最大値は 100 です。クエリ結果が 100 より大きい場合は、PageNumber を使用する必要があります。次の数ページのデータを取得するには、つまりリクエストを複数回送信するには、毎回 PageNumber を 1、2、3... に設定して、すべての戻り情報を取得します。 setPageNumber() メソッドを使用して、リクエストで返されるページ数を指定できます。
以上がAPI が 10 個の情報しか返さない理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。