個々の応答のサイズを制限するためのオプション
10.0.2 以降、BigFix Inventory は JSON 応答で HTTP ストリーミングを使用します。HTTP 応答メソッドでは、HTTP ヘッダー転送エンコードがチャンクに設定され、応答サイズは決定されません。その結果、データベースが API に一致するレコードを提供するため、データはストリームで使用できます。この改善により、API のページネーションはオプションであり、すべてのデータを 1 つの照会で取得できます。
limit と offset の使用
limit および offset パラメーターは、SQL/RDBMS での表現と同じように機能します。これにより、結果セットでページングを行うことができます。トレードオフで、最初のページは最短時間で使用可能ですが、それ以降のページのロードには時間がかかります。後続のページをロードするにはより多くのデータが必要であり、最適化できません。
- 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
基準の使用
代替メソッドは 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"]
]}
このメソッドは、必要なデータのサブセットを直ちに抽出するためにデータ・インデックスを使用し、後続の照会に対しより安定した応答時間が提供されます。