List of Sources

以下のGET リクエストを実行することで、システムに存在するデータソースのリストにアクセスできます:

GET http://<cdatavirtuality-server-address>:8080/rest/api/source
 
STATUS 200
 
[
{"Name":"SYS"},
{"Name":"SYSADMIN"},
{"Name":"UTILS"},
{"Name":"SYSLOG"},
{"Name":"views"}
]

Source Content

各ソースのコンテンツ(テーブル、ビュー、およびストアド プロシージャ)には、以下のGET 要求でアクセスできます:

GET http://<cdatavirtuality-server-address>:8080/rest/api/source/{name}
 
STATUS 200
 
[
{"Name":"CliTemplates","Type":"Table","Description":null,"SchemaName":"SYSADMIN"},
{"Name":"DVConnectorPropDefaults","Type":"Table","Description":null,"SchemaName":"SYSADMIN"},
{"Name":"dropIndexByName","Type":"Procedure","Description":null,"SchemaName":"SYSADMIN"}
]

要求されたソースが見つからない場合は、説明のメッセージとともにステータス404 が返されます。次の例では、スキーマ名のタイプミスが問題の原因です:

STATUS 404
 
{"title":"Something is wrong","description":"Schema 'sysadmind' doesn't exist.","hint":null}

Operations with Sources

Removing Source

DELETEメソッドを使用してソースを削除できます。

This operation cannot be undone. Once a source is removed, there is no way to restore it.
DELETE http://<cdatavirtuality-server-address>:8080/rest/api/source/{source}
 
STATUS 200
 
// No content in response

ただし、ソースが見つからない場合は、以下のメッセージが表示されます:

DELETE http://<cdatavirtuality-server-address>:8080/rest/api/source/{source}
 
STATUS 404
 
{"title":"Something is wrong","description":"Schema 'doesntexist' doesn't exist.","hint":null}

Adding Source

新しいソースは、POST要求を使用して追加できます。リクエストボディは、指定されたテンプレートに厳密に従わなければならないことに注意してください:

POST http://<cdatavirtuality-server-address>:8080/rest/api/source/
 
Body (application/json):
 
{
"name":"trackNtrace",
"template":"ws",
"translator":"dhl",
"connectionProps":"",
"modelProps":"",
"translatorProps":"",
"encryptedProperties":""
}
 
STATUS 200
 
// No content in response

Retrieving Table Content

特定のテーブルの内容にアクセスするには、次のようにGETリクエストを使用します:

GET http://<cdatavirtuality-server-address>:8080/rest/api/source/{source-name}/{table-name}
 
STATUS 200
 
[{"id":2, "Name":"test"}, {"id":3, "Name":"newone"}]

転送データ量を減らしたい場合は、SQL クエリエンドポイントarray=trueを使用するとよいでしょう。これは、JSON オブジェクト・コレクションの代わりに2次元配列を使用します(SQL Queriesの例1を参照)。テーブルがない場合、以下のメッセージが表示されます:

GET http://<cdatavirtuality-server-address>:8080/rest/api/source/{source-name}/{table-name}
 
STATUS 404
 
{"title":"Something is wrong","description":"Table 'doesntexist' doesn't exist.","hint":null}

Retrieving Row Content by Primary Key

主キーの値によって特定の行の内容にアクセスするには、次のGETリクエストを使用できます:

GET http://<cdatavirtuality-server-address>:8080/rest/api/source/{source-name}/{table-name}/{primary-key-value}
 
STATUS 200
 
[{"id":2, "Name":"test"}]

Retrieving Table Content by Column Value

WHERE句を持つクエリのように)あるカラム値を満たす特定のテーブルの行にアクセスするには、次の リクエストを使用できます:GET

GET http://<cdatavirtuality-server-address>:8080/rest/api/source/{source-name}/{table-name}/{column-name}/{column-value}
 
STATUS 200
 
[{"num":2, "Name":"test"}, {"num":2, "Name":"newone"}]

Retrieving row content by primary key and retrieving table content by column value available since v4.5

Calling Stored Procedure

ストアドプロシージャはREST API からも呼び出すことができます。パラメータ呼び出しはリクエストの本文で指定する必要があります。ストアドプロシージャは、空の配列、単一のオブジェクトを含む配列、または複数のオブジェクトを含む配列を返すことができます。

POST http://<cdatavirtuality-server-address>:8080/rest/api/source/{source-name}/{procedure-name}
 
Body (application/json):
 
{"param" : "please md5 it"}
 
// or
 
[{"param" : "please md5 it"}]
 
STATUS 200
 
[{"hash":"4BC3338E788464C21918D09A64AB6212"}]

ストアド プロシージャが見つからない場合、ステータス404 が表示され、次のメッセージが表示されます:

POST http://<cdatavirtuality-server-address>:8080/rest/api/source/{source-name}/{procedure-name}
 
STATUS 404
 
{"title":"Something is wrong","description":"Procedure 'doesntexist' doesn't exist.","hint":null}

Calling Stored Procedure in Bulk Mode

POSTリクエスト1つでプロシージャーを一括モードで呼び出す方法があります。この場合、レスポンスには、ストアド プロシージャに送信されたパラメータのセットごとの結果が含まれます。これらの結果は、呼び出されたストアドプロシージャの元の名前としてマークされ、"_index "で連結され、ストアドプロシージャの呼び出しと次の呼び出しの結果を分離します。例えば、プロシージャに2つのパラメータabがある場合、HTTPボディは以下のようになり、2つのプロシージャ呼び出しを表します:

POST http://<cdatavirtuality-server-address>:8080/rest/api/{source-name}/{procedure-name}
 
Request:
 
POST http://<cdatavirtuality-server-address>:8080/rest/api/SYSADMIN/md5
 
Body (application/json):
 
'[{"param" : "please md5 this"},{"param" : "and this"}]'
 
STATUS 200
 
[
{
"md5_1": [
{
"hash": "305CD7369E8475B593E6CF04C0E02181"
}
]
},
{
"md5_2": [
{
"hash": "EB21B32F360D0B91F188219FB46F6B77"
}
]
}
]

ストアド プロシージャが見つからない場合、ステータス404 が表示され、次のメッセージが表示されます:

POST http://<cdatavirtuality-server-address>:8080/rest/api/source/{source-name}/{procedure-name}
 
STATUS 404
 
{"title":"Something is wrong","description":"Procedure 'doesntexist' doesn't exist.","hint":null}

Viewing Response Parameters

 ?withParams=trueパラメータをエンドポイントに追加すると、プロシージャー・パラメータの詳細がレスポンスに追加されます:

  • パラメータ名、
  • パラメータのデータ型、
  • パラメータの種類(IN、OUT、結果セットなど)
POST http://<cdatavirtuality-server-address>:8080/rest/api/{source-name}/{procedure-name}?withParams=true
 
Request:
 
POST http://<cdatavirtuality-server-address>:8080/rest/api/SYSADMIN/md5?withParams=true
 
Body (application/json):
 
'{"param" : "please md5 it"}'
 
STATUS 200
 
[
{
"procParams": [
{
"Name": "param",
"DataType": "string",
"Type": "In"
},
{
"Name": "hash",
"DataType": "string",
"Type": "Out"
}
]
},
{
"hash": "4BC3338E788464C21918D09A64AB6212"
}
]

Response parameters are available since v4.0.7

Response Format

回答は以下のフォーマットでリクエストできます:

  • JSON
  • XML
  • Array

必要な書式は、ACCEPTヘッダーまたはformatパラメータのいずれかで設定できます。ACCEPTヘッダー値としてapplication/json, application/xmlまたはapplication/arrayを、formatパラメータ値としてjson, xmlまたはarrayを使用してください。

Response format available since v4.5