概要
TDVにはデフォルトでデータソースの設定を変更できるAPIが公開されています。
データソースで設定されている情報を上記APIを用いて変更する方法について説明します。
データソース設定を変更するにあたりデータソースのパスが必要です。
変更できる設定はデータソース名、データソースのパスと、構成タブにある「基本」タブと「詳細」タブのすべての情報です。
本記事では、例としてホスト名を変更する手順について説明します。
検証環境
製品 | バージョン | 実行環境 |
---|---|---|
TDV Server | 8.5.2 | Windows Server 2019 |
TDV Studio | 8.5 | Windows 10 |
1. GUI上で実行する場合
1. データソースの情報を確認します
データソースの接続情報を確認します。今回の例ではホスト名を変更するので「Host」を確認します。
右下の「情報」タブから「リソース」の「名前」欄からデータソースのパスを確認します。
2. 「ヘルプ」タブから「REST APIリファレンス」を開きます。
3. TDVサーバーで使用しているユーザーでログインします。
4.ログイン後、「DataSource」の欄まで移動します。
5.Getメソッドの/rest/datasource/v1 の「Get DataSource」を開きます。
6.「Try it out」を押下することでパラメータの入力ができるようになります。1で確認したデータソースのパス入力し、SumuryのパラメータをFalseにします。
7.Executeを押下することでデータソースの情報がjson形式で返されます。
8.Responce Bodyをスクロールすることで「urlIP」にホスト名が記されていることを確認します。
返却される情報はKey、Type、Valueで一組になっています。
この操作で変更したいKeyを確認します。今回はホスト名が変更したいのでホスト名のKeyが「urlIP」となっていることを確認します。
9.次にPutメソッドの/rest/datasource/v1 の「Update DataSource」を開きます。
10.Getメソッドの時と同様に「Try it out」を押下することでパラメータの入力フォームが開きます。
11.パラメータを入力します。
パラメータはJSONを用いて以下の形式で入力します。
[ { "parentPath": "string", "name": "string", "adapterName": "string", "nativeProperties": { "additionalProp1": {}, "additionalProp2": {}, "additionalProp3": {} }, "annotation": "string", "newPath": "string", "newName": "string", "ifNotExists": true } ]
Key | Keyの説明 | 必要かどうか |
parentPath | データソースを格納しているフォルダのパス(データソース自体は含めない) | 必須 |
name | データソース名 | 必須 |
adapterName | アダプター名 | 必須 |
nativeProperties | 接続情報 | 変更する場合必要 |
annotation | 注釈 | 任意 |
newPath | 変更後のデータソースの格納パス | 変更する場合必要 |
newName | 変更後のデータソースの名前 | 変更する場合必要 |
ifNotExists | データソースが存在しないとき作成するかどうか。trueなら作成 | 任意 |
ホスト名以外にも8で取得したKeyをもとにほかのパラメータも更新することができます(ポート番号やデータベース接続時のログイン情報など)。
例)ホスト名、Port番号、ログインユーザ名を変更したいときの「nativeProperties」のValue
Key | Value |
"urlIP" | “productiondb.com” |
"urlPort" | 1522 |
"login" | "produser" |
"nativeProperties": {
"urlIP": “productiondb.com”
"urlPort": 1522
"login": “produser”
},
補足
以下のようにRequest Bodyを以下のようにすることで複数のデータソースを一括で変更することもできる。
[
{
"parentPath": "/shared/ticket1087/DataSource1",
"name": "testDataSource1",
"adapterName": "Oracle 19c (Thin Driver)",
"nativeProperties": {
"urlIP": “productiondb.com”
},
},
{
"parentPath": "/shared/ticket1087/DataSource1",
"name": "testDatasouce2",
"adapterName": "Oracle 19c (Thin Driver)",
"nativeProperties": {
"urlIP": “productiondb.com”
}
}
]
12.Executeを押下してパラメータを更新します。
200 レスポンスが返されていることを確認します。
13.TDV Studioを開きtestDataSource1のホスト名が変更されていることを確認します。
testDataSourceが開かれていた場合一度閉じて緑色の更新ボタンを押下します。
Hostの部分が「productiondb.com」に変更されていることを確認します。
2. コマンドライン上で実行する場合
ここまででGUI上でAPIを操作したときの挙動について確認しました。
データソースの設定の更新はcurlコマンドにて同じ処理を行えます。
以下のコマンドはデータソースの接続先ホスト名を変更するときのコマンドです。
curl -X PUT "<TDVサーバーのアドレス>:9400/rest/datasource/v1" -H "accept: /" -H "Content-Type: application/json" -d "[{\"parentPath\":\"<データソースを格納しているフォルダのパス>",\"name\":\"<データソース名>\",\"adapterName\":\"<アダプター名>\",\"nativeProperties\":{\"urlIP\":\"<変更したいホスト名>\"}}]" -u <管理者権限を持つユーザー>:<ユーザーのパスワード>
事前にパラメータの値を定義し、for文などのループ処理を行うスクリプトを作成することで、データソース設定を一括で更新することも可能です。