Kompira Enterprise APIについて
ご担当者様
こちらを参考に以下ディレクトリにある先月のデータのみをjsonにて抽出したいのですが、「updated__gte=$(date '+%Y-%m-%dT00:00:00')"」部分についてどのように指定したらよいでしょうか。
参考にしているサイト
https://support.kompira.jp/column/fetch_object_with_rest_api/
先月のデータを取得したいディレクトリ
https://サーバIPアドレス/user/app/AlertAutomatic/Data/Task
よろしくお願いいたします。
-
正式なコメント
フィックスポイントの高橋です。
たとえば、以下のように updated__gte=先月1日(以降)と updated__lt=今月1日(より前)を組み合わせて指定して、更新日時が先月を示しているデータで絞り込めるのではないかと思います。
https://サーバIPアドレス/user/app/AlertAutomatic/Data/Task.children?updated__gte=2023-11-01T00:00:00&updated__lt=2023-12-01T00:00:00
参考になさってみてください。
コメントアクション -
ただ、実行してみると最初の25件しか処理されていなさそうで、何か追加で渡す必要がありますでしょうか。
クエリパラメータに page_size を追加してみてください。数値を与えて page_size=100 などと指定すると、一度に取得できる件数を調整することができます(上限は1000です)。
page_size より多くのデータがある場合は、レスポンスに含まれる next に次ページのデータを取得するための URL が格納されていますので、next が null になるまで繰り返すと全データを取得することができます。(レスポンスデータについては参考いただいているサイトにも記載がございます)
参考になさってみてください。
-
ただ、今回作成したAPIを実行するとAPIの実行完了までCPU使用率が97%となります。
このCPU使用率を抑える方法はありますでしょうか。当該オブジェクトが持つフィールドの数が多い場合などはデータベースへのアクセス件数が増えるために、時間も負荷もかかってしまいます。
条件付きの改善案としては、該当するオブジェクトの「パス」と「更新日時」だけ取得できればよい、というように全てのデータを取得する必要がない場合であれば、attrs=<属性名> というクエリを追加することで一部の属性値だけを取得することになり、負荷を軽減できるかと思います。
たとえば、クエリパラメータに &attrs=abspath&attrs=updated を追加して試してみてください。
サインインしてコメントを残してください。
コメント
5件のコメント