ナレッジ共有ツール NotePM の API をドライバー化:各種ツールから接続してみた

こんにちは。CData Software Japanリードエンジニアの杉本です。

本記事では、各種 Web API を ODBC / JDBC / ADO.NET といった標準のDB接続規格でアクセスできるようにするCData API Driverを用いて、ナレッジ共有ツール NotePM の API を各種ツールから接続する方法を紹介します。

f:id:sugimomoto:20210608112834p:plain

ExcelやAccess・Power BIなどのエンドユーザーが利用するUIベースのツールはもちろん、Visual StduioやEclipseといった開発ツールからも接続することが可能です。

対象 API

NotePMはナレッジ情報を一元管理するクラウドベースの社内版ウィキペディアサービスです。

詳しくは以下のURLからどうぞ。

notepm.jp

f:id:sugimomoto:20210608112841p:plain

NotePM APIでは、ノートやページ、フォルダといったナレッジデータからユーザー、チーム、グループといった組織管理系のデータまでAPIを通じて取得・更新する機能が提供されています。

notepm.jp

f:id:sugimomoto:20210608112848p:plain

実現イメージ

この記事では NotePM APIに対してBIツールやIDEでから接続します。しかしながら、各APIは単純にツールと接続・連携することはできません。

各ツールがどのようにWeb API側へリクエストを投げるべきかの判断材料や各種認証方法の処理、メタデータの情報等が無いためです。そのためには基本的にカスタムコネクタを作るか、プログラムを組まなければいけません。

f:id:sugimomoto:20210608112856p:plain

そこで、CData API Driver を用いて、このボトルネックを解決します。

まず、各ツールからはODBCやJDBCインタフェースでSQL(Select文)をCData API Driverに向けて発行してもらいます。そのリクエストを受け取った CData API Driverは、NotePM の API のエンドポイントに対して、SQL文を解釈し、HTTPリクエスト発行します。

リクエスト後、JSONフォーマットで返ってきたデータをCData API Driverが各種インタフェースフォーマットにデータを変換してツールに返します。

f:id:sugimomoto:20210608112902p:plain

これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータをNotePM API から取得することが可能となります。

各種接続シナリオと必要なツール

CData API Driver は様々なツールとの接続に利用できますが、今回は以下のツールを用いて接続する方法を解説していきます。

  • Excel(Excel-addin で利用)
  • Access(ODBC 接続で利用)
  • PowerBI (Power BI Connector 接続で利用)
  • ASTERIA Warp(JDBC Driver 接続で利用)
  • CDataSync

なお、CData API Driverは上記以外にも様々なツールと連携することが可能です。

www.cdata.com

f:id:sugimomoto:20201120133303p:plain

テーブル(ビュー)一覧

CData API Drvier で NotePM APIに接続するためには専用の設定ファイル(Profile)が必要になります。

NotePM API Profile では、以下のテーブル(ビュー)を提供しています。用途に合わせて、接続してみてください。

テーブル名 対応API 備考
Attachments 添付ファイル
Comments コメント
Groups グループ
GroupUsers グループ-ユーザー
NoteFolders フォルダ
Notes ノート
Pages ページ
Tags タグ
Teams チーム
Users ユーザー

NotePM API 利用準備

最初にNotePMのAPIを利用するために、NotePM側でAPI アクセストークンを取得する必要があります。

NotePM にログインし、右上のメニューから「個人設定」→「APIアクセストークン」に移動します。

f:id:sugimomoto:20210608112910p:plain

APIアクセストークンの画面で「新規作成」をクリックし

f:id:sugimomoto:20210608112915p:plain

任意のトークン名とスコープ(API Profileは読み取り専用なので、読み込みのみ設定)を指定し、「新規作成」をクリックしましょう。

f:id:sugimomoto:20210608112920p:plain

その後、以下のようにAPIアクセストークンが生成されるので、この値を控えておきます。

f:id:sugimomoto:20210608112926p:plain

API データ処理用 設定ファイルを作成

続いて、NotePM の API を CData API Deiver が解釈できるように設定ファイル(API Profile)を作成します。

すでに私が作成したものがあるので、以下のURLからダウンロードしてください。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/APIProfiles/NotePM.apip

保存先フォルダは後ほど使用するので「C:\APIProfiles\NotePM.apip」といった書き込み可能な任意のフォルダに配置してください。

CData API Driver のインストール

各種ツールとNotePM API を繋ぐために必要となるCData API Driverをインストールします。

基本的なインストール・設定方法は各種Driver共通ですので、ここではODBC Driverを例に説明します。

まず、CData API ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。

www.cdata.com

f:id:sugimomoto:20201027111336p:plain

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。

f:id:sugimomoto:20201027111341p:plain

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。

以下の項目をセットし、保存します。

プロパティ名 備考
Profile C:\APIProfiles\NotePM.apip 予めダウンロードしたNotePM.apipのパスを指定します。
ProfileSettings APIKey=XXXXX;TeamDomain=XXXX; APIKeyには予め取得したAPIアクセストークンを指定します。TeamDomainは接続先のNotePM URL「https://XXXXX.notepm.jp/」に含まれるXXXXの部分を指定します。

f:id:sugimomoto:20210608113018p:plain

以上で、CData API Driverの準備は完了です。

Excel から NotePM API に接続(Excel Add-in for API)

CData Excel Add-in for API をインストール後、Excelを立ち上げるとCDataタブが追加されていることがわかります。このタブから各種操作を実施します。

接続を開始するには、CDataタブから[取得元 API]をクリックします。

f:id:sugimomoto:20201116171024p:plain

最初に接続するためのウィザードが表示されるので、「CData API Driverのインストール」の内容と同様に各種パラメータを入力します。

f:id:sugimomoto:20210608113025p:plain

接続後、対象テーブルを選択し、「OK」をクリックします。

f:id:sugimomoto:20210608113031p:plain

クリック後、対象のデータが一括で取得できます。

f:id:sugimomoto:20210608113036p:plain

f:id:sugimomoto:20210608113041p:plain

Access リンクテーブル から NotePM API に接続(CData REST ODBC Driver)

次はCData ODBC Driverを利用して、Access リンクテーブルから接続してみたいと思います。

あらかじめ新規にAccessを立ち上げて、空のデータベースを作成しておきましょう。

続いて「外部データ」タブから「新しいデータ ソース」→「他のソースから」→「ODBC データベース」を選択します。

image.png

ウィザードが表示されるので「リンクテーブルを作成」を選択し、「OK」をクリックします。

image.png

データソースの選択では「コンピューターデータソース」から事前に作成したCData API Driver用DSNを選択し「OK」をクリック

f:id:sugimomoto:20210608113048p:plain

テーブルの一覧が表示されるので、任意のテーブルを選択し「OK」をクリックします。

f:id:sugimomoto:20210608113053p:plain

設定後、リンクテーブルが追加され、以下のようにNotePMのデータを閲覧することができるようになります。もちろん、通常通りクエリデザイナーでも使用可能です。

f:id:sugimomoto:20210608113058p:plain

PowerBI から NotePM API に接続(CData API Driver for Power BI)

最後にCData ODBC Driverを用いて、Power BIからNotePMの商品データを取得します。

PowerBI Desktopを起動して、「データを取得」をクリックします。

f:id:sugimomoto:20201027111449p:plain

データ接続先一覧の中から「CData API」を選択し、「接続」をクリックします。

f:id:sugimomoto:20201027111519p:plain

データソース名は先程登録したNotePMのDSNを入力し「OK」をクリックします。

f:id:sugimomoto:20210608113130p:plain

テーブルの一覧から対象となるテーブルを選択し「読み込み」をクリックします。

f:id:sugimomoto:20210608113135p:plain

以下のようにNotePMのデータを読み込みことができます。

f:id:sugimomoto:20210608113141p:plain

あとはPoewr BIの機能を用いて、ビジュアライズに利用することができます。

f:id:sugimomoto:20210608113149p:plain

ASTERIA Warp から NotePM API に接続(CData JDBC API Driver)

ASTERIA Warpでは、フローデザイナーを使って、データ処理のプロセスを作成します。

フローデザイナーの基本的な利用方法についてはWarpのフローデザイナー操作ガイドをご覧ください。

CData JDBC API Driver はインストール後、「cdata.jdbc.api.jar」と「cdata.jdbc.api.lic」のファイルをAsteriaのドライバーフォルダ(asteriahome5\system\lib\drivers)に登録します。

f:id:sugimomoto:20210218152238p:plain

その後、ASTERIA Warpを立ち上げて、フローデザイナーにアクセスし、CData JDBC Driverを使用するために接続を追加します。

画面左のコネクションペイン上にある電源ボタンをクリックをクリックすると、「コネクションの作成」ダイアログが表示されます。

f:id:sugimomoto:20210216154030p:plain

「接続種別」として「RDB」を選択、「名前」に分かりやすい名前を設定し「OK」をクリックします。

f:id:sugimomoto:20210408170925p:plain

作成したコネクションをダブルクリックすると、画面右のインスペクタに接続プロパティが表示されます。 「基本」タブでドライバーのパスとURLをそれぞれ設定します。

プロパティ名 備考
ドライバーのパス 例)C:\asteriahome5\system\lib\drivers\cdata.jdbc.api.jar 前節でインストールした API JDBC Driverファイルへの参照を指定します。
URL jdbc:api:Profile=C:\API Profiles\NotePM.apip;
ProfileSettings="APIKey=XXXX;
TeamDomain=XXXX;";
NotePMに接続するための接続文字列を指定します。

f:id:sugimomoto:20210608113200p:plain

これでコネクションの作成は完了です。あとは、フロー上でデータベースタブにある「RDBGet」のコンポーネントを使って、データの取得が行なえます。

「RDBGet」フローに配置し、ダブルクリックします。

f:id:sugimomoto:20210216180653p:plain

コネクションの選択ウインドウが表示されるので、先程作成したNotePMのコネクションを選択しましょう。

f:id:sugimomoto:20210608113205p:plain

その後、SQLビルダーが表示されるので、取得したいデータが格納されている、任意のテーブルとカラムを選択します。

f:id:sugimomoto:20210608113209p:plain

あとは、「モデルにSQLを適用する」をクリックし「SELECTテスト」でデータが正常に取得できているかを確認します。

以下のようにデータが参照できれいればOKです。設定を保存してSQLビルダーを閉じます。

f:id:sugimomoto:20210608113215p:plain

CDataSync から NotePM に接続

www.cdata.com

CDataSyncではデータソースとして、NotePMに接続することができます。

なお、CDataSync Windows版の場合は「NotePM.apip」のプロファイルをSyncの本体が存在するフォルダの「www\app_data\profiles」に配置してください。profilesフォルダが存在しない場合は手動で作成してください。

C:\ProgramData\CData\sync\profiles

Cross-Platform版の組み込みJettyで構成している場合は、以下のフォルダにapipファイルを配置します。

/opt/sync/profiles

配置後、CDataSyncを起動すると以下のようにデータソースとして NotePMが利用できるようになります。

f:id:sugimomoto:20210608113254p:plain

接続プロパティは以下の通り設定します。

プロパティ名 備考
ProfileSettings APIKey=XXXXX;TeamDomain=XXXX;

入力後、「接続」ボタンをクリックし、接続テストが完了すればOKです。

f:id:sugimomoto:20210608113301p:plain

併せて、任意の同期先の接続情報も構成しておきましょう。

f:id:sugimomoto:20210311162106p:plain

接続完了後、新しくジョブを作成します。

f:id:sugimomoto:20210311162114p:plain

先程作成した NotePM のコネクションを選択します。

f:id:sugimomoto:20210608113308p:plain

ジョブを作成した後は、NotePM の同期対象となる任意のテーブルを選択しましょう。

f:id:sugimomoto:20210608113313p:plain

データのプレビュー画面で、実際に取得が成功しているかどうかを確認できました。

f:id:sugimomoto:20210608113318p:plain

あとは、任意のスケジュールを指定してデータのレプリケーションを実行できます。

f:id:sugimomoto:20210311162149p:plain

終わりに

これら以外にもCData API Driverは各種ETLツールや帳票ツールなどからも接続することが可能です。

以下のCData オンラインナレッジベースには、各種ツールからの接続方法を紹介した記事が多数掲載されているので、是非見てみてください。

https://www.cdata.com/jp/kb/

不明な点があれば、テクニカルサポートまでお気軽にどうぞ!

https://www.cdata.com/jp/support/submit.aspx

トライアル・お問い合わせ

関連コンテンツ