個々の応答のサイズを制限するためのオプション

10.0.2 以降、BigFix Inventory は JSON 応答で HTTP ストリーミングを使用します。HTTP 応答メソッドでは、HTTP ヘッダー転送エンコードがチャンクに設定され、応答サイズは決定されません。その結果、データベースが API に一致するレコードを提供するため、データはストリームで使用できます。この改善により、API のページネーションはオプションであり、すべてのデータを 1 つの照会で取得できます。

limit と offset の使用

limit および offset パラメーターは、SQL/RDBMS での表現と同じように機能します。これにより、結果セットでページングを行うことができます。トレードオフで、最初のページは最短時間で使用可能ですが、それ以降のページのロードには時間がかかります。後続のページをロードするにはより多くのデータが必要であり、最適化できません。

大量のデータを取得する場合は、いくつかの API 要求を作成し、すべてのデータを同時に取得するのではなく、limit および offset パラメーターを使用して結果をページ編集することもできます。
  • limit パラメーターを使用して、取得された結果の数を指定します。
    https://hostname:port/URL?token=token&countSwitch=1&limit=10000&offset=0
    例:
    https://192.0.2.2:9081/api/sam/v2/computers?token=token&countSwitch=1&limit=10000&offset=0
  • 最初の要求を 100000 個の結果に制限する場合、次の要求に offset=100000 パラメーターを追加して、既に取得されたレコードを省略します。
    https://hostname:port/URL?token=token&countSwitch=1&limit=10000&offset=10000
    例:
    https://192.0.2.2:9081/api/sam/v2/computers?token=token&countSwitch=1&limit=10000&offset=10000
注: limit および offset パラメーターは、50 エンドポイントのデータを取得する場合には省略できます。約 200000 個のエンドポイントが存在する環境の場合、コンピューター・システムでは 100000 行、ソフトウェア・インスタンスでは 200000 行、およびライセンス使用状況では 300000 行のページ単位でデータを取得することが推奨されます。

基準の使用

代替メソッドは API インスタンスに依存し、基準の使用に基づいています。アプリケーションは、データ全体を準備することなく、ページに関する情報を直接抽出できるため、後続のページの応答時間を最適化することができます。

limit および offset パラメーターでは、何らかの順序に従って結果を準備し、その結果を部分的に抽出する必要があります。この方法では、API が要求されると、結果全体が生成されます。ページは異なる時刻にレポートされます。ただし、レスポンスのサイズはデータ構造によって異なります。

基準を使用したソフトウェア・インスタンスのページングの例

instance_id フィールドには、エントリーの固有値が表示されます。instance_id 番号にギャップがないことは保証されません。最初の instance_id は 1 です。

instance_id の最大値を取得するには、以下の例を使用します。

https://hostname:port/api/sam/v2/software_instances?columns[]=instance_id&order[]=instance_id%20desc&offset=0&limit=1&countSwitch=1

戻り値は次のとおりです。

{"total":-1,"rows":[{"instance_id":162}]}

順序 (order [] = instance_id desc) を指定すると、確実に最初に最大値がレポートされるため、先頭の行のみを取得できます (limit = 1)。戻り値は instance_id の最大値です。

instance_id および基準を使用して software_instances でページングを行うことができます。

要求の例を以下に示します。https://hostname:port/api/sam/v2/software_instances?columns[]=computer_id&columns[]=instance_id&columns[]=component_name&offset=0&limit=10000&countSwitch=1&criteria={"and":[["instance_id",">=","1"],["instance_id ","<","10000"]]}

limit および offset 値は追加のパラメーターですが、使用することをお勧めします。

ページングに対する制御は、次のように基準部分に移動します。

criteria={"and":[

["instance_id",">=","1"],

["instance_id ","<","10000"]

]}

次のページは、次のように渡すことによって返されます。

criteria={"and":[

["instance_id",">=","10000"],

["instance_id ","<","20000"]

]}

このメソッドは、必要なデータのサブセットを直ちに抽出するためにデータ・インデックスを使用し、後続の照会に対しより安定した応答時間が提供されます。