ソース・コード・ファイル REST API のリファレンス
このページは、InterSystems IRIS® のソース・コード・ファイル REST インタフェースに関するリファレンス情報を提供します。
Note:
この API のエンドポイントには、用語 atelier があります。Eclipse ベースの IDE であり、インターシステムズでは非推奨になっている Atelier で使用する目的で、この API が開発されたからです。インターシステムズの VS Code - ObjectScript IDE では、現在この同じ API を使用しています。
GetServer
このメソッドは、サーバに関する情報を返します。これには、InterSystems IRIS ソース・コード・ファイル REST API のバージョンや、サーバ上で使用可能なネームスペースに関する情報が含まれます。
例および追加情報は、"InterSystems IRIS サーバに関する情報の取得" を参照してください。
URL
GET http://server:port/api/atelier/
JSON メッセージ
以下の返されるコンテンツはサーバ記述子です。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": {
"version": "IRIS for Windows (x86-64) 2018.1.1 (Build 515U) Mon Feb 5 2018 08:24:13 EST",
"id": "98E1697E-13F9-4D6A-8B73-827873D1D61C",
"api": 2,
"features": [
...
],
"namespaces": [
"%SYS",
"USER"
]
}
}
}
HTTP 返りコード
HeadServer
このメソッドは、サーバの HttpHeader を返します。
URL
HEAD http://server:port/api/atelier/
JSON メッセージ
返されるコンテンツはありません。
HTTP 返りコード
GetJobs
このメソッドは、InterSystems IRIS インスタンス上の実行中ジョブのリストを返します。
URL
GET http://server:port/api/atelier/v1/%25SYS/jobs
Note:
% は URL 特殊文字であるため、リテラル % を指定するには、% の後ろに 25 (パーセント記号の 16 進コード) を付加する必要があります。したがって、リテラル %SYS を指定するには %25SYS を使用する必要があります。
JSON メッセージ
以下の返されるコンテンツは、ジョブ記述子の配列です。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": [
{
"pid": 1394,
"namespace": "%SYS",
"routine": "%Studio.Debugger.1",
"state": "RUN",
"device": "|TCP|1972|1394"
},
{
"pid": 1345,
"namespace": "%SYS",
"routine": "RECEIVE",
"state": "HANG",
"device": "/dev/null"
},
{
"pid": 1364,
"namespace": "%SYS",
"routine": "%SYS.TaskSuper.1",
"state": "SELECTW",
"device": "/dev/null"
},
{
"pid": 1396,
"namespace": "%SYS",
"routine": "%SYS.cspServer3",
"state": "READ",
"device": "|TCP|1972|1396"
},
{
"pid": 1346,
"namespace": "%SYS",
"routine": "ECPWork",
"state": "RUNW",
"device": "/dev/null"
},
{
"pid": 1417,
"namespace": "%SYS",
"routine": "%SYS.BINDSRV",
"state": "READ",
"device": "|TCP|1972|1417"
}
]
}
}
HTTP 返りコード
GetCSPApps
このメソッドは、サーバ上で定義されているかサーバ上の指定したネームスペース向けに定義されている Web アプリケーションのリストを返します。
URL
GET http://server:port/api/atelier/v1/%25SYS/cspapps
GET http://server:port/api/atelier/v1/%25SYS/cspapps/namespace
以下は値の説明です。
namespace
ネームスペースの名前を指定します。namespace を指定しない場合、このメソッドはすべてのネームスペースの Web アプリケーションを返します。
Note:
% は URL 特殊文字であるため、リテラル % を指定するには、% の後ろに 25 (パーセント記号の 16 進コード) を付加する必要があります。したがって、リテラル %SYS を指定するには %25SYS を使用する必要があります。
URL パラメータ
URL パラメータの ?detail=1 を渡すことで、アプリケーションを詳しく記述しているオブジェクトが含まれた配列を返すことができます。
JSON メッセージ
以下の返されるコンテンツは、定義されている Web アプリケーションを列挙している配列です。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": [
"/csp/broker",
"/csp/documatic",
"/csp/sys",
"/csp/sys/exp",
"/csp/sys/mgr",
"/csp/sys/op",
"/csp/sys/sec",
"/isc/studio/rules",
"/isc/studio/templates",
"/isc/studio/usertemplates",
"/csp/user"
]
}
}
以下は、detail=1 を使用した場合の同じ返されるコンテンツです。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": [
{
"name": "/csp/broker",
"default": false
},
{
"name": "/csp/documatic",
"default": false
},
{
"name": "/csp/sys",
"default": true
},
{
"name": "/csp/sys/exp",
"default": false
},
{
"name": "/csp/sys/mgr",
"default": false
},
{
"name": "/csp/sys/op",
"default": false
},
{
"name": "/csp/sys/sec",
"default": false
},
{
"name": "/isc/studio/rules",
"default": false
},
{
"name": "/isc/studio/templates",
"default": false
},
{
"name": "/isc/studio/usertemplates",
"default": false
},
{
"name": "/csp/user",
"default": true
}
]
}
}
HTTP 返りコード
GetNamespace
このメソッドは、指定されたネームスペースに関する情報を返します。
URL
GET http://server:port/api/atelier/v1/namespace
JSON メッセージ
以下は、ネームスペース USER に関して返されるコンテンツ情報です。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": {
"name": "USER",
"db": [
{
"name": "USER",
"crhash": "3A1A0E8B6C8",
"default": true,
"dbsys": false
},
{
"name": "IRISLIB",
"crhash": "A56AAA8D5418",
"default": false,
"dbsys": true
},
{
"name": "IRISLOCALDATA",
"crhash": "3A1A0551876",
"default": false,
"dbsys": false
},
{
"name": "IRISSYS",
"crhash": "3A19FFD2EF0",
"default": false,
"dbsys": true
}
],
"features": [
{
"name": "ENSEMBLE",
"enabled": false
}
]
}
}
}
HTTP 返りコード
GetDocNames
このメソッドは、ソース・コード・ファイル名のリストを返します。オプションの cat と type によって、ソース・コード・ファイルのタイプが限定されます。
例および追加情報は、"ネームスペース内で定義されたソース・コード・ファイルの取得" を参照してください。
URL
GET http://server:port/api/atelier/v1/namespace/docnames
GET http://server:port/api/atelier/v1/namespace/docnames/cat
GET http://server:port/api/atelier/v1/namespace/docnames/cat/type
以下は値の説明です。
cat
カテゴリ・コードを指定します (CLS = クラス、RTN = ルーチン、CSP = CSP ファイル (InterSystems IRIS での使用は非推奨)、OTH = その他)。既定値は * です。
type
ソース・コード・ファイルのタイプを指定します。* というワイルドカードまたはファイル・タイプを指定できます。CLS の場合は、タイプは * である必要があります。RTN の場合は、タイプは mac、int、inc、bas、mvi、または mvb のいずれでもかまいません。CSP ではタイプには、コンマで区切った js、css などのファイル・タイプのリストを指定できます。既定値は * です。
URL パラメータ
JSON メッセージ
以下の返されるコンテンツは、ソース・コード・ファイル記述子の配列です。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": [
{
"name": "%Api.DocDB.cls",
"cat": "CLS",
"ts": "2016-08-03 20:01:42.000",
"upd": true,
"db": "IRISLIB",
"gen": false
},
...
{
"name": "EnsProfile.mac",
"cat": "RTN",
"ts": "2003-09-19 13:53:31.000",
"upd": true,
"db": "INVENTORYR",
"gen": false
},
...
{
"name": "xyz.mac",
"cat": "RTN",
"ts": "2016-08-11 15:05:02.167",
"upd": false,
"db": "INVENTORYR",
"gen": false
}
]
}
}
HTTP 返りコード
GetModifiedDocNames
このメソッドは、指定されたハッシュがデータベースで保持された時点以降に変更されたソース・コード・ファイルのリストを返します。このメソッドには、データベースのキーとハッシュのリストを JSON 配列として渡します。これらのハッシュ値に基づいて、そのキーによって定義されたデータベース内で何らかの内容が変更されたかどうかが判定されます。通常は、受信 JSON メッセージとして空の配列を使用してこの API を最初に呼び出します。これにより、各ファイルのデータベース・キーおよびデータベース・ハッシュと共に、ネームスペース内のすべてのソース・コード・ファイルの名前が返されます。その後、dbname と dbhash をポストして、前回の呼び出し以降にサーバ上で変更されたソース・コード・ファイルを特定できます。
確認対象となるソース・コード・ファイルのリストは、次の例のようにポストします。
[ { "dbname" : "USER",
"dbhash" : "KWAGbOdnRblPzANaiv1Oiu0BZLI"
}, ... ]
URL
POST http://server:port/api/atelier/v1/namespace/modified/type
以下は値の説明です。
type
* または 3 文字コード (ls、mac、int、inc、bas、または mvi) で、ソース・コードのファイル・タイプを指定します。既定値は * です。
この呼び出しでは、Content-Type application/json ヘッダが必要です。
JSON メッセージ
以下の返されるコンテンツは、ソース・コード・ファイル記述子の配列です。
[ { "dbname" : "USER",
"dbhash" : "Qx1zuNaulq3b_1yR9ahZAfjkc-",
"crhash" : "47763751EC",
"docs": [{
"name": "User.NewClass1.cls",
"ts": "2016-01-04 14:00:04.000",
"gen": false,
"depl": false
}, ... ]
}, ... ]
指定した dbhash 以降にソース・コード・ファイルが削除された場合は、次のように空の文字列に設定されたタイム・スタンプと共に、そのソース・コード・ファイルがリスト内に返されます。
"ts": ""
マッピングによってデータベースがインクルードされており、マッピングが削除されている場合、dbhash と crhash の両方が "000" 値と共に返され、docs が空の配列として返されます。
HTTP 返りコード
-
HTTP 200:OK の場合。
-
HTTP 400:ポストされたコンテンツが空の場合や、type が CLS 以外の場合。
-
HTTP 415:コンテンツ・タイプが application/json でない場合。
-
HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。
PutDoc
このメソッドは、指定されたソース・コード・ファイルを保存します。そのファイルが存在しない場合は、このメソッドはそのファイルを作成し、そのファイルが存在する場合は、このメソッドはその既存ファイルを指定されたファイルに置き換えます。確実に正しいバージョンのファイルを上書きするには、前回の PutDoc または GetDoc の ETAG ヘッダで返されたタイムスタンプ値で If-None-Match ヘッダを指定します。バージョンのチェックなしでファイルを上書きする場合は、URL パラメータ ?ignoreConflict=1 を指定します。このメソッドは、対応するソース・コード・ファイル・オブジェクトを返します。バイナリ・ファイルを保存する場合は、受信 JSON メッセージの enc 要素を true に設定して、そのファイルのコンテンツを base64 のブロックの配列として組み込んでください。 サーバ上のテキストが保存プロセス中に (例えばソース・コントロール・フックなどによって) 変更された場合は、更新されたテキストは、返されるソース・コード・ファイルのコンテンツ配列内に返されます。
ソース・コード・ファイルに関するエラーは、返されるソース・コード・ファイル・オブジェクトの status プロパティに格納されます。
バージョン 2 の PutDoc は、3 つの形式 (既定の UDL 形式、XML 形式、および従来の %RO エクスポート・ユーティリティで使用される形式) のファイル・コンテンツを受け入れます。PutDoc は、自動的にファイル・コンテンツの形式を認識します。
例および追加情報は、"ネームスペース内の新規ファイルの作成または既存ファイルの更新" を参照してください。
URL パラメータ
URL パラメータの ?ignoreConflict=1 を渡すことで、ETAG チェックを省略できます。この例では、前回のアクセス以降にファイルが変更されていたとしても、ソース・コード・ファイルを強制的にサーバに書き込みます
JSON メッセージ
以下は、ソース・コード・ファイル xyz.mac の PUT の返されるコンテンツです。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"name": "xyz.mac",
"db": "INVENTORYR",
"ts": "2016-09-14 14:10:16.540",
"upd": false,
"cat": "RTN",
"status": "",
"enc": false,
"flags": 0,
"content": []
}
}
クラスの保存時、サーバによって正規化される可能性があるために、PutDoc は常にストレージ・セクションを返します。コンテンツが単なるストレージ・セクションである場合、'flags' json フィールドは 1 になります。PutDoc がコンテンツ内でクラス全体を返すか、またはコンテンツが空である場合、'flags' は 0 になります。
HTTP 返りコード
-
HTTP 200:更新された場合。
-
HTTP 201:作成された場合。
-
HTTP 400:指定されたリソース名が無効なソース・コード・ファイル名である場合。
-
HTTP 404:指定されたリソースが見つからない場合。
-
HTTP 409:タイムスタンプに基づいて、サーバとクライアントのバージョン間に競合が検出された場合。ファイルが存在する場合に、PutDoc はこの値を返します。ただし、If-None-Match ヘッダでサーバ上のファイルの現行のタイムスタンプ値を指定した場合を除きます。競合が発生した場合、返されるメッセージにはサーバ上のソース・コード・ファイルのコンテンツが含まれます。
-
HTTP 415:コンテンツ・タイプとして text/plain が渡されなかった場合。
-
HTTP 425:ソース・コード・ファイルがロックされているために書き込み不能である場合。
-
HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。
GetDoc
このメソッドは、指定されたソース・コード・ファイルおよびネームスペースのテキストを返します。
返されるコンテンツには、ソース・コード・ファイル・オブジェクトが含まれています。
ソース・コード・ファイルに関するエラーは、このソース・コード・ファイル・オブジェクトの status プロパティに格納されます。ソース・コントロール・フックがそのネームスペースに対して有効になっている場合は、フックによって生成されたコンソール出力はすべて取得されて、'コンソール' 配列内の行の配列として返されます。
結果に含まれているのは、要求されたファイルの名前、そのファイルが保管されているデータベース、そのファイルのタイム・スタンプ、そのファイルのカテゴリ略称 (CLS = クラス、RTN = ルーチン、CSP = CSP ファイル [InterSystems IRIS での使用は非推奨]、OTH = その他)、および配列内に返されるソース・コード・ファイル・コンテンツです。
バージョン 2 の GetDoc は、UDL 形式 (既定)、XML 形式、または従来の %RO ユーティリティで使用される形式でファイルのコンテンツを返すことができます。
例および追加情報は、"ネームスペース内で定義されたソース・コード・ファイルの取得" を参照してください。
URL
GET http://server:port/api/atelier/v1/namespace/doc/doc-name
GET http://server:port/api/atelier/v2/namespace/doc/doc-name
Note:
CSP ファイル (InterSystems IRIS での使用は非推奨) を取得する場合は、doc-name の値には / (スラッシュ) 文字が含まれます。そのため、GetDoc を定義する URLMap には :docname の代わりにこのパラメータ名用に (.*) が含まれています。詳細は、"REST サービスの作成" の “REST の URL マップの作成” を参照してください。
URL パラメータ
-
URL パラメータの ?binary=1 を渡すことで、ソース・コード・ファイルをバイナリとして強制的にエンコードできます。
-
URL パラメータの ?storageOnly=1 を渡すことで、クラスの保管部分のみを返すことができます。
-
バージョン 2 では、URL パラメータ ?format= parameter を渡すことで、UDL 形式 (既定)、XML 形式、または従来の %RO ユーティリティで使用される形式でファイルのコンテンツを返すように指定できます。
-
?format=udl
-
?format=xml
-
?format=%RO
?binary=1 を指定すると、GetDoc は format パラメータを無視します。
JSON メッセージ
以下は、%Api.DocDB.cls を要求することによって返される結果の最初の部分の例です。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"name": "%Api.DocDB.cls",
"db": "IRISLIB",
"ts": "2016-09-13 22:31:24.000",
"upd": true,
"cat": "CLS",
"status": "",
"enc": false,
"flags": 0,
"content": [
/// Routing class for the DocDB REST services",
"Class %Api.DocDB Extends %DocDB.REST",
"{",
...
以下は、?binary=1 を使用した場合の同じ要求の結果です。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"name": "%Api.DocDB.cls",
"db": "IRISLIB",
"ts": "2016-01-04 14:00:04.000",
"cat": "CLS",
"status": "",
"enc": true,
"content": [
"Ly8vIFRoaXMgY2xhc3MgaXMgdGhlIHN1cGVyY2xhc3MgZm9yIGFsbCBl ... PSAzIF0KewoKfQo="
]
}
}
HTTP 返りコード
-
HTTP 200:OK の場合。
-
HTTP 304:指定されたソース・コード・ファイルが変更されていない場合 (https://en.wikipedia.org/wiki/HTTP_ETag を参照してください)。
-
HTTP 400:指定されたリソースが有効なソース・コード・ファイル名でない場合。
-
HTTP 404:指定されたソース・コード・ファイルが存在しない場合。
-
HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。
[ソース・コード・ファイルが存在しません] などの「ソフト」エラーが発生した場合は、結果の「ステータス」フィールドに追加情報が含まれます。他のソフト・エラーの例としては、[ファイルがロックされています] などが挙げられます。例えば、以下が HTTP 404 返りコードと共に返される可能性があります。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"name": "xyz1.mac",
"db": "",
"ts": "",
"cat": "RTN",
"enc": false,
"content": "",
"status": "ERROR #16005: Document 'xyz1.mac' does NOT exist"
}
}
DeleteDoc
このメソッドは、指定されたネームスペース内の指定されたソース・コード・ファイルを削除します。このメソッドは、対応するソース・コード・ファイル・オブジェクトを返します。
ソース・コード・ファイルに関するエラーは、このソース・コード・ファイル・オブジェクトの status プロパティに格納されます。
例および追加情報は、"ファイルの削除" を参照してください。
URL
DELETE http://server:port/api/atelier/v1/namespace/doc/doc-name
Note:
CSP ファイル [InterSystems IRIS での使用は非推奨] を削除する場合は、doc-name の値には / (スラッシュ) 文字が含まれます。そのため、DeleteDoc を定義する URLMap には :docname の代わりにこのパラメータ名用に (.*) が含まれています。詳細は、"REST サービスの作成" の “REST の URL マップの作成” を参照してください。
JSON メッセージ
以下は、ソース・コード・ファイル xyz.mac の DELETE の返されるコンテンツです。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"name": "xyz.mac",
"db": "INVENTORYR",
"ts": "",
"cat": "RTN",
"status": "",
"enc": false,
"flags": 0,
"content": []
}
}
HTTP 返りコード
-
HTTP 200:OK の場合。
-
HTTP 400:指定されたリソースが有効なソース・コード・ファイル名でない場合。
-
HTTP 404:指定されたソース・コード・ファイルが存在しない場合。
-
HTTP 423:指定されたリソースがロックされている場合。
-
HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。
HeadDoc
このメソッドは、指定されたソース・コード・ファイルとネームスペースの HttpHeader を返します。このヘッダに含まれているタイムスタンプを使用して、サーバとクライアントのバージョンの不一致を検知できます。
URL
HEAD http://server:port/api/atelier/v1/namespace/doc/doc-name
Note:
CSP ファイル [InterSystems IRIS での使用は非推奨] の HTTP ヘッダを取得する場合は、doc-name の値には / (スラッシュ) 文字が含まれます。そのため、HeadDoc を定義する URLMap には :docname の代わりにこのパラメータ名用に (.*) が含まれています。詳細は、“REST の URL マップの作成” を参照してください。
HTTP 返りコード
-
HTTP 200:OK の場合。
-
HTTP 400:指定されたリソース名が無効なソース・コード・ファイル名である場合。
-
HTTP 404:指定されたリソースが見つからない場合。
-
HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。
GetDocs
このメソッドは、指定されたネームスペース内の指定された全ソース・コード・ファイルのテキストを返します。
URL
POST http://server:port/api/atelier/v1/namespace/docs
取得するソース・コード・ファイルのリストを HTTP 要求の本体内に渡します。この要求本体は、取得するソース・コード・ファイルの名前の JSON 配列です。例 : [ "%Api.DocDB.cls", ...]
この呼び出しでは、Content-Type application/json ヘッダが必要です。
JSON メッセージ
返されるコンテンツは、ソース・コード・ファイル・オブジェクトの配列です。ソース・コード・ファイル・オブジェクトの構造の例については、"GetDoc" メソッドを参照してください。
ソース・コード・ファイルに関するエラーは、各ソース・コード・ファイル・オブジェクトの status プロパティに格納されます。このメソッドは storageOnly フラグをサポートしていません。このメソッドは ETAG チェックを実行しません (したがって、どのような状況でも HTTP 304 を返すことはありません)。
HTTP 返りコード
DeleteDocs
このメソッドは、指定された一連のソース・コード・ファイルを削除します。このメソッドは、対応するソース・コード・ファイル・オブジェクト配列を返します。
URL
DELETE http://server:port/api/atelier/v1/namespace/docs
削除するファイルのリストは、JSON 配列として HTTP 要求の本体内に渡されます。例 : [ "%Api.DocDB.cls", ...]
この呼び出しでは、Content-Type application/json ヘッダが必要です。
JSON メッセージ
以下は、ソース・コード・ファイル xyz.mac と存在しないクラス notexist.cls の DELETE の返されるコンテンツです。
{
"status": {
"errors": [],
"summary": ""
},
"console": [
],
"result": [
{
"name": "xyz.mac",
"db": "INVENTORYR",
"status": ""
},
{
"name": "notexist.cls",
"db": "",
"status": "ERROR #5001: Document Does Not Exist: User.notexist.cls [zExistsDoc+3^%Atelier.v1.Utils.General.1:%SYS]"
}
]
}
各ソース・コード・ファイルに関するエラーは、返される各ソース・コード・ファイル・オブジェクトの status プロパティに格納されます。ステータスが空の文字列の場合は、そのソース・コード・ファイルは正常に削除されました。そうでない場合は、そのソース・コード・ファイルは削除されませんでした。
削除されたソース・コード・ファイルについては、db プロパティに、そのドキュメントがどのデータベースから削除されたのかが示されます。
HTTP 返りコード
-
HTTP 200:OK の場合。
-
HTTP 400:ポストされたデータに JSON 配列が含まれていない場合。
-
HTTP 415:渡されたコンテンツ・タイプが application/json でない場合。
-
HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。
Compile
このメソッドは、ソース・コード・ファイルをコンパイルします。このメソッドは、複数のソース・コード・ファイルを同時にコンパイルできます。このメソッドは、対応するソース・コード・ファイル・オブジェクトの配列を返します。
コンパイルするファイルのリストは、JSON 配列として HTTP 要求の本体内に渡されます。例 : [ "%Api.DocDB.cls", ...]
例および追加情報は、"ファイルのコンパイル" を参照してください。
URL
POST http://server:port/api/atelier/v1/namespace/action/compile
この呼び出しでは、Content-Type application/json ヘッダが必要です。
URL パラメータ
JSON メッセージ
以下は、Atelier.NewClass1 をコンパイルする際に返されるコンテンツです。
{
"status": {
"errors": [],
"summary": ""
},
"console": [
"Compilation started on 01/12/2016 17:44:00 with qualifiers 'cuk'",
"Compiling class Atelier.NewClass1",
"Compiling table Atelier.NewClass1",
"Compiling routine Atelier.NewClass1.1",
"Compilation finished successfully in 0.067s.",
""
],
"result": {
"content": [
{
"name": "Atelier.NewClass1.cls",
"status": "",
"content": [
"Storage Default",
"{",
"<Data name=\"NewClass1DefaultData\">",
"<Value name=\"1\">",
"<Value>%%CLASSNAME</Value>",
"</Value>",
"</Data>",
"<DataLocation>^Atelier.NewClass1D</DataLocation>",
"<DefaultData>NewClass1DefaultData</DefaultData>",
"<IdLocation>^Atelier.NewClass1D</IdLocation>",
"<IndexLocation>^Atelier.NewClass1I</IndexLocation>",
"<StreamLocation>^Atelier.NewClass1S</StreamLocation>",
"<Type>%Storage.Persistent</Type>",
"}",
""
],
"db": "IRISSYS",
"ts": "2016-01-12 17:44:00.053",
"enc": false,
"flags": 1
}
]
}
}
ソース・コード・ファイルに関するエラーは、各ソース・コード・ファイル・オブジェクトの status プロパティに格納されます。
永続クラスをコンパイルするとストレージ定義が変更される場合、ストレージ定義はソース・コード・ファイル・オブジェクトのコンテンツとして返されます。 それ以外の場合は、結果コンテンツは空になります。
HTTP 返りコード
-
HTTP 200:OK の場合。
-
HTTP 400:リソース名が無効なソース・コード・ファイル名である場合。
-
HTTP 404:指定されたリソースが見つからない場合。
-
HTTP 423:ソース・コード・ファイルがロックされている場合。
-
HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。
Index
このメソッドは、指定されたソース・コード・ファイルに関する要約情報を返します。お使いのアプリケーションはこの情報を使用して、そのソース・コード・ファイルに対するインデックスを作成できます。このメソッドは、インデックス・ソース・コード・ファイル・オブジェクトの配列を返します。
インデックスを作成するソース・コード・ファイルのリストは、HTTP 要求の本体内に渡されます。この要求本体は、ソース・コード・ファイルの名前の JSON 配列です。例 : [ "%Api.DocDB.cls", ...]
URL
POST http://server:port/api/atelier/v1/namespace/action/index
この呼び出しでは、Content-Type application/json ヘッダが必要です。
JSON メッセージ
ソース・コード・ファイルに関するエラーは、各ソース・コード・ファイル・オブジェクトの status プロパティに格納されています。返される配列には、サーバ上のソース・コード・ファイルの構造とドキュメントに関する情報が含まれています。これは、そのソース・コード・ファイルが属しているカテゴリによって異なります。以下は、クラス (カテゴリ CLS) の例です。(現在はクラスのインデックス作成のみがサポートされています。)
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": [
{
"name": "%Activate.GenericObject.cls",
"db": "IRISLIB",
"ts": "2016-01-04 14:00:04.000",
"gen": false,
"others": [
"%Activate.GenericObject.1.INT"
],
"cat": "CLS",
"content": {
"desc": "This class provides functionality to create an ActiveX object, invoke its methods and Get/Set its properties by name.",
"depl": false,
"depr": false,
"final": false,
"hidden": false,
"super": [
"%Activate.IDispatch"
],
"methods": [
{
"name": "CreateObject",
"desc": "This method is used to create a generic object given only its progid. If the object cannot be found an exception is thrown.
The return value should be tested against $$$NULLOREF in the usual manner to ensure that the object has been successfully created",
"depr": false,
"final": true,
"internal": false,
"private": false,
"scope": "class",
"returntype": "%Library.RegisteredObject",
"args": [
{
"name": "Progid",
"type": "%Library.String"
}
]
},
{
"name": "GetObject",
"desc": "This method is used to create a generic object from a moniker. If the object cannot be found an exception is thrown.
The return value should be tested against $$$NULLOREF in the usual manner to ensure that the object has been successfully created.",
"depr": false,
"final": true,
"internal": false,
"private": false,
"scope": "class",
"returntype": "%Library.RegisteredObject",
"args": [
{
"name": "Moniker",
"type": "%Library.String"
}
]
}
],
"parameters": [],
"properties": []
},
"status": ""
}
]
}
}
HTTP 返りコード
Query
このメソッドは、InterSystems IRIS テーブルに対する SQL クエリを実行して、結果を返します。要求の本体は、そのクエリを指定する JSON オブジェクトです。このメソッドは、クエリ条件に一致するオブジェクトの配列を返します。それぞれの返されるオブジェクトには、そのクエリによって返される単一行に関する情報が含まれています。
URL
POST http://server:port/api/atelier/v1/namespace/action/query
SQL クエリは、URL 要求の本体内に指定します。クエリでは、指定されたネームスペース内のデータベースを指定する必要があります。
この呼び出しでは、Content-Type application/json ヘッダが必要です。
JSON メッセージ
返されるコンテンツは、オブジェクトの配列です。エラーは、各ソース・コード・ファイル・オブジェクトの status プロパティに格納されます。
{
"status": {
"errors": [],
"summary": ""
},
"console": [],
"result": {
"content": [
{
"ID": "%all",
"Description": "The Super-User Role"
},
{
"ID": "%db_%default",
"Description": "R/W access for this resource"
},
{
"ID": "%db_irislocaldata",
"Description": "R/W access for this resource"
},
...
{
"ID": "%sqltunetable",
"Description": "Role for use by tunetable to sample tables irrespective of row level security"
}
]
}
}
HTTP 返りコード
Search
このメソッドは、指定されたコンテンツで InterSystems IRIS データベース内のファイルを検索します。Search メソッドは API のバージョン 2 で使用できます。このメソッドは、ユーザに向けて表示することを目的とした形式で検索結果を返します。
URL
POST http://server:port/api/atelier/v2/namespace/action/search
URL パラメータ
-
必須の URL パラメータ ?query=expression では、指定したファイル内を検索するための正規表現またはテキスト文字列を指定します。
-
必須の URL パラメータ ?files=file-list では、指定した expression を検索するファイルのコンマ区切りリストまたはファイル・マスク (例えば、al*.mac) を指定します。
-
オプションの URL パラメータ ?regex=1 は、URL パラメータ query に正規表現が含まれていることを指定します (既定)。?regexp=0 は、query にテキスト文字列が含まれていて、正規表現として解釈してはいけないことを指定します。
-
オプションの URL パラメータ ?sys=1 は、検索にシステム・ファイルを含めることを指定します。既定値は ?sys=0 で、システム・ファイルが除外されます。
-
オプションの URL パラメータ ?gen=1 は、生成されたファイルを検索に含めることを指定します。既定値は ?gen=0 で、生成されたファイルが除外されます。
-
オプションの URL パラメータ ?max=integer は、返す結果の最大数を指定します。既定値は ?max=200 です。
JSON メッセージ
以下の search REST 呼び出しは、前後にスペースが付いた “Email” という単語について、すべての .cls ファイルと .mac ファイルを検索します (正規表現では、\s はスペース文字と一致します)。
GET localhost:52773/api/atelier/v2/SAMPLES/action/search?query=.*\sEmail\s.*&files=*.cls,*.mac
この呼び出しは、以下のメッセージを返します。返されるメッセージは、SAMPLES ネームスペースのコンテンツに応じて異なる場合があります。
{
"status": {
"errors": [],
"summary": ""
},
"console": [
"",
"Searching for '.*\\sEmail\\s.*' in '*.cls,*.mac'",
"Wasabi.Data.Employee.cls(Email): Property Email ",
"Wasabi.Person.API.Employee.cls(Email): Property Email ",
"ZAUTHENTICATE.mac(175): Properties(\"EmailAddress\") - Email address",
"Found 3 occurrence/s in 3 file/s."
],
"result": [
{
"doc": "Wasabi.Data.Employee.cls",
"matches": [
{
"member": "Email",
"text": "Property Email "
}
]
},
{
"doc": "Wasabi.Person.API.Employee.cls",
"matches": [
{
"member": "Email",
"text": "Property Email "
}
]
},
{
"doc": "ZAUTHENTICATE.mac",
"matches": [
{
"line": "175",
"text": "Properties(\"EmailAddress\") - Email address"
}
]
}
]
}
HTTP 返りコード
GetEnsClassType
このメソッドは、プロダクションの作成に使用することを目的としたクラスの名前のリストを返します。取得するクラスのタイプ (ビジネス・サービス・クラスなど) を指定できます。
URL
GET http://server:port/api/atelier/v1/namespace/ens/classes/type
以下は値の説明です。
type
ここでは整数であり、以下のようにその整数に対応するクラスを返します。
Adapters 1
InboundAdapters 2
OutboundAdapters 3
Messages 4
Requests 5
Responses 6
BusinessServices 7
BusinessProcesses 8
BusinessOperations 9
DataTransformation 10
Production 11
BusinessHost 12
Dashboard 13
Rule 14
JSON メッセージ
以下の返されるコンテンツは、クラス名の配列です。
{
status: {
errors: []
summary: ""
}
console: []
result: {
content: [
"Ens.Enterprise.MsgBank.BankTCPAdapter",
"Ens.Enterprise.MsgBank.ClientTCPAdapter",
"Ens.InboundAdapter",
"Ens.OutboundAdapter"
]
}
}
HTTP 返りコード