InterSystems IRIS® Data Platform の DocDB REST クライアント API は、REST からの DocDB の操作を可能にするメソッドを提供します。REST API は他の DocDB API とは異なります。他の API はオブジェクトに作用しますが、REST はリソースに作用するためです。このリソース指向は、REST の特性の基本となります。
この章の curl の例では、ポート番号 57774 を指定しています。これは、一例に過ぎません。実際は、ご使用の InterSystems IRIS インスタンスに適したポート番号を使用する必要があります。
DocDB の場合、唯一有効な Content-Type は application/json です。予期しない Content-Type が要求された場合、HTTP 応答コード = 406 が発行されます。
ドキュメントの取得
-
GetDocument: データベースから指定ドキュメントを返します。
curl -i -X GET -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/doc/databaseName/id? wrapped=true|false
-
GetDocumentByKey: データベースから一意のキーとして定義されたプロパティでドキュメントを返します。
curl -i -X POST -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/doc/databaseName/keyPropertyName/keyValue
FindDocuments: データベースからクエリ仕様と一致するすべてのドキュメントを返します。
curl -i -X POST -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/namespaceName/find/databaseName? wrapped=true|false
以下の curl スクリプトの例では、完全なユーザの資格情報およびヘッダ情報を指定しています。MySamples ネームスペースにある Continents ドキュメント・データベースのすべてのドキュメントが返されます。
curl --user _SYSTEM:SYS -w "\n\n%{http_code}\n" -X POST
-H "Accept: application/json" -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/mysamples/find/continents
ドキュメント・データベースから以下のような JSON データが返されます。
{"content":{"sqlcode":100,"message":null,"content":[
{"%Doc":"{\"code\":\"NA\",\"name\":\"North America\"}","%DocumentId":"1","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"SA\",\"name\":\"South America\"}","%DocumentId":"2","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"AF\",\"name\":\"Africa\"}","%DocumentId":"3","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"AS\",\"name\":\"Asia\"}","%DocumentId":"4","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"EU\",\"name\":\"Europe\"}","%DocumentId":"5","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"OC\",\"name\":\"Oceana\"}","%DocumentId":"6","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"AN\",\"name\":\"Antarctica\"}","%DocumentId":"7","%LastModified":"2018-02-15 21:33:03.64"}]}}
制限 : 以下の curl スクリプトの例では、制限オブジェクトを指定して、Continents ドキュメント・データベースから返されるドキュメントを制限しています。この制限例では、返されるドキュメントの名前が A の文字から始まるドキュメントに制限されます。
curl --user _SYSTEM:SYS -w "\n\n%{http_code}\n" -X POST
-H "Accept: application/json" -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/mysamples/find/continents -d
'{"restriction":["Name","A","%STARTSWITH"]}'
ドキュメント・データベースから以下の JSON ドキュメントが返されます。
{"content":{"sqlcode":100,"message":null,"content":[
{"%Doc":"{\"code\":\"AF\",\"name\":\"Africa\"}","%DocumentId":"3","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"AS\",\"name\":\"Asia\"}","%DocumentId":"4","%LastModified":"2018-02-15 21:33:03.64"},
{"%Doc":"{\"code\":\"AN\",\"name\":\"Antarctica\"}","%DocumentId":"7","%LastModified":"2018-02-15 21:33:03.64"}]}}
プロジェクション : 以下の curl スクリプトの例では、Continents ドキュメント・データベースの各ドキュメントから返す JSON プロパティを投影しています。この例では、前の例と同じ制限が使用されています。
curl --user _SYSTEM:SYS -w "\n\n%{http_code}\n" -X POST
-H "Accept: application/json" -H "Content-Type: application/json"
http://localhost:57774/api/docdb/v1/mysamples/find/continents -d
'{"restriction":["Name","A","%STARTSWITH"],"projection":["%DocumentId","name"]}'
ドキュメント・データベースから以下のような JSON データが返されます。
{"content":{"sqlcode":100,"message":null,"content":[
{"%Doc":"{"%DocumentId":"3","name":"Africa"}},
{"%Doc":"{"%DocumentId":"4","name":"Asia"}},
{"%Doc":"{"%DocumentId":"7","name":"Antarctica"}}]}}