はじめに
Qlik NPrinting API は Qlik NPrinting オブジェクトをプログラムにより管理するための REST API です。Qlik NPrinting Web Console での機能のサブセットは API でも使用可能です。
Qlik NPrinting Web Console 内で操作するオブジェクトは、API では JSON エンティティとして表されています。これらのエンティティには Qlik NPrinting Web Console 内の設定に対応する一連のプロパティがあります。この API にはアプリ、ユーザー、グループ、レポートなどのエンティティを作成、取得、更新、または削除するためのエンドポイント セットが含まれています。どの要求の場合でも、ユーザー権限に基づいてフィルター処理されたデータが返されます。つまり、何らかのエンティティに関しユーザーにアクセス権限がない場合には、そのエンティティは応答には含まれません。
ユーザーは、認証済みの Windows ユーザーとして API にログインするための関連付けられたドメイン アカウントを持っていなければなりません。ドメイン アカウントの設定については、「ユーザーの作成」 を参照してください。
次に、Postman と呼ばれる REST クライアントを簡単な例として使用し API について説明します。ここでは以下を学びます。
- 接続およびユーザーの資格情報の認証
- 一連のアプリの取得
- エンティティの更新
- フィルターの作成
始める前に以下を済ませてある必要があります。
-
Postman を次からインストールする:
- Qlik NPrinting サーバー をインストールするコンピューターの URL を確認します。
Windows 認証
GET や POST の REST 接続などの外部からの接続が正常に動作するためには、Windows 認証がオンになっている必要があります。この設定は、Qlik NPrinting ウェブ コンソール の [管理] > [設定] > [認証] で切り替えることができます。
Qlik NPrinting API への接続
既定設定では Qlik NPrinting サーバー は REST 要求を 4993 番ポートでリッスンします。したがって URL は以下のようになります:
https://NPrinting.server.name:4993/api/v1/<path>
ユーザー資格情報の認証
NPrinting API でどのような操作を行う場合でも、まず自己のユーザー権限の認証を済ませなければなりません。
以下の例では現在の Windows ユーザー名による認証を行います。
Postman を開き、以下に示すように項目に入力します。NPrinting.server.name を、Qlik NPrinting サーバー がインストールされているコンピューターの URL に置き換えます。
一連のアプリの取得
以下のエンドポイントでは、現在のユーザーが閲覧権限を付与されている Qlik NPrinting アプリの全容を表示できます。
Postman を開き、以下の例に従って該当の項目に入力します。NPrinting.server.name は Qlik NPrinting サーバー をインストールするコンピューターの URL で置き換えてください。
応答には各アプリの ID、タイトル、その他の詳細が含まれます。
エンティティの更新
PUT メソッドを使用し、API を通して特定のエンティティを更新することができます。Qlik NPrinting サーバー では、エンティティ更新の過程で、欠損しているプロパティが既定値で置き換えられることがあります。そのため、更新する場合にはエンティティ全体を含めることをお勧めします。
この例では users エンティティの email プロパティを更新します。
エンティティを更新するには:
- 更新するユーザーの ID がわからない場合は、Postman に次のパスを入力して GET 要求を送信します:
/users
応答から該当のユーザー ID を検索します。
- その ユーザー ID を Postman の users パスに以下のように追加し、 GET 要求を送信します:
{id}users/{id}
以下のような応答が返されるはずです:
}{ "password": "test", "id": "113ac265-163e-4feb-854e-ade3cdafc837", "email": "xyz@example.com", "created": "2018-02-22T16:17:18Z", "lastUpdate": "2018-02-28T18:20:57Z", "enabled": true, "userName": "Test", "domainAccount": "domain\\test", "timezone": "Europe/Rome", "locale": "En", "folder": "test folder", "subFolder": "test subFolder" }
- 返されたエンティティ内の内側の括弧で囲まれたコンテンツをコピーし、新しい PUT 要求の本文に貼り付けます。
- email の値を変更します。
- パスワードのプロパティと該当の値をエンティティに追加します。以下は要求の本文の一例です。
{ "password": "test", "id": "113ac265-163e-4feb-854e-ade3cdafc837", "email": "xyz@example.com", "created": "2018-02-22T16:17:18Z", "lastUpdate": "2018-02-28T18:20:57Z", "enabled": true, "userName": "Test", "domainAccount": "domain\\test", "timezone": "Europe/Rome", "locale": "En", "folder": "test folder", "subFolder": "test subFolder" }
-
本文内のエンティティを更新したら、次のパスを使用して PUT 要求を送信します:
users/{id}
この例では、{id} は 113ac265-163e-4feb-854e-ade3cdafc837 です。
- 同じパスを使用して、変更を確認するための GET 要求を送信します。
フィルターの作成
POST メソッドを使用し、API を通してタスク、レポート、ユーザー、オブジェクトのフィルターを作成することができます。この例では CategoryName (Sales アプリのデータ ソース内の項目) 用の簡単なフィルターを作成します。
- フィルターを作成するにはアプリの ID とフィルター適用先の接続を把握している必要があります。
ID を取得するには、Postman を使用して次のそれぞれのパスに GET 要求を送信します:
/apps
/connections
例えばアプリの ID を取得する場合なら、GET 要求を NPrinting.server.name:4993/api/v1/apps に送信します。
それぞれの応答から該当のユーザー ID を検索します。
- 以下は、POST /filters 要求の本文にアプリと接続の ID が含まれているコードの例です:
{ "appId": "de867383-3d6a-4f37-8fe5-387552c60d3f", "enabled": true, "name": "AverageSaleByCategory", "description": null, "fields": [ { "connectionId": "9a7b1016-8d22-46ac-a384-158f715547a7", "name": "CategoryName", "overrideValues": false, "values": [ { "value": "Bath Clothes", "type": "text" }, { "value": "Men´s Clothes", "type": "text" }] }] }
応答には新しく作成したフィルターの ID が含まれています (ID は location ヘッダーとして返された中にあります)。
次のステップ
Qlik NPrinting API での要求をいくつか見てきました。新規タスクの実行を開始するなどの他の API エンドポイントも試してみてください。
以下の付加的なリソースも参考になります。