column

外部との連携 Kompira REST APIを利用して外部からオブジェクト情報を取得する

Kompira REST APIを利用して外部からジョブフローを実行する」では、指定のジョブフローを外部から操作する方法を紹介しました。
今回はKompiraのREST APIの別の利用方法として、外部からKompiraのオブジェクト情報を取得してみましょう。
また、取得した情報の応用例として、Kompira上のテーブルのデータを取得し、CSV形式のデータを作成する方法についても合わせてご紹介します。


動作確認環境

ソフトウェア バージョン
Kompira 1.5.1
LinuxOS CentOS7.4-1708

以降では、kompiraサーバーのIPアドレスを <kompiraサーバー> と表記します。


事前準備

APIトークンの取得

APIの利用に必要な「REST APIトークン」を、「Kompira REST APIを利用して外部からジョブフローを実行する」に記載されている手順で取得してください。
取得したトークンを以降では <api_token> と表記します。

 

オブジェクトの作成

外部から取得するオブジェクトをKompira上に作成します。
ここでは、下図のようなテーブルオブジェクトにノード情報を登録します。


基本の取得方法

実際にAPIリクエストを使ってオブジェクトの情報を取得してみましょう。
オブジェクト取得時のリクエストURLは以下になります。

ここでは、ターミナルのcURLコマンドを実行します。

すると下記のようなJSON形式の辞書データが返却されます。

 

レスポンスデータの中身は以下の通りです。

キー名 説明
id オブジェクトID
abspath オブジェクトパス
owner オブジェクト所有者ユーザー名
fields フィールドデータ辞書(オブジェクト依存)
extra_properties オブジェクト拡張属性
user_permissions ユーザーパーミッション辞書
group_permissions グループパーミッション辞書
display_name 表示名
description 説明
created オブジェクト生成日時
updated オブジェクト最終更新日時
type_object 型オブジェクトのパス
parent_object 親オブジェクトのパス

オブジェクト一覧の取得

GETリクエストのエンドポイントにディレクトリもしくはテーブルオブジェクトを指定することで、配下に存在するオブジェクトを一括で取得することができます。

リクエストのURLは以下の2通りになります。

コマンドでの実行は以下のようになります。

このときのレスポンスデータは以下です。
“results”の中に、先ほどのレスポンスデータがリストとして格納されています。

 

一覧取得時のレスポンスデータの中身は以下の通りです。

キー名 説明
count オブジェクト総数
next 次ページのURL
previous 前ページのURL
results オブジェクトデータリスト

応用例1(フィルタ条件付きの一覧取得)

一覧取得のリクエスト時にクエリパラメータを指定することで、レスポンスに含まれるデータを絞り込むことができます。

例えば、以下の条件でのフィルタを行います。

1. “/root”の子孫にある
2. ノード情報オブジェクトの内、
3. 本日の00:00:00以降に更新されたオブジェクトを取得する。

このときに指定するクエリは下の表のようになります。

クエリパラメータ 説明
type_object 指定した型のオブジェクトのみを取得
updated__gte 指定した日付以降に更新されたオブジェクトを取得

 

コマンドでの実行は以下のようになります。

または、クエリをURLで直接指定する以下の方法もあります。

 

お知らせ

近日リリース予定のバージョン1.5.2では、より強力なフィルタ指定を行うことができます。乞うご期待。


応用例2(CSVファイルへの変換)

REST API経由で取得したデータを活用する方法について一例を説明します。
先述の「オブジェクト一覧」で取得したノードオブジェクトの情報について、CSV形式のファイルへ変換します。
ここでは整形用のコマンドとして、 jq コマンドを用いています。

 

変換後のデータは以下のようになります。