Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché ソース・コード・ファイル REST API のリファレンス

Caché ソース・コード・ファイル REST インタフェースは、以下のメソッドをサポートしています。

  • GetServer:サーバに関する情報を返します。

  • HeadServer:サーバの HttpHeader を返します。

  • GetJobs:実行中ジョブのリストを返します。

  • GetMetaData:指定されたデータベースの METADATA.zip ファイルのコンテンツを返します。

  • GetCSPApps:CSP アプリケーションのリストを返します。

  • GetNamespace:指定されたネームスペースに関する情報を返します。

  • GetDocNames:ソース・コード・ファイル名のリストを返します。

  • GetModifiedDocNames:指定されたハッシュがデータベースで保持された時点以降に変更されたソース・コード・ファイルのリストを返します。

  • PutDoc:指定されたソース・コード・ファイルを保存します。

  • GetDoc:指定されたソース・コード・ファイルのテキストを返します。

  • DeleteDoc:指定されたソース・コード・ファイルを削除します。

  • HeadDoc:指定されたソース・コード・ファイルの HttpHeader を返します。

  • GetDocs:指定された全ソース・コード・ファイルのテキストを返します。

  • DeleteDocs:指定された一連のソース・コード・ファイルを削除します。

  • Compile:指定されたソース・コード・ファイルをコンパイルします。

  • Index:指定されたソース・コード・ファイルに関する要約情報を返します。

  • Query:任意の Caché テーブルに対する SQL クエリを実行して、結果を返します。

  • Search:Caché データベース内のソース・コード・ファイルを検索します。

  • GetEnsClassType:Ensemble クラス名のリストを返します。

  • GetAdpInputOutputClass:アダプタの入力/出力タイプを返します。

GetServer

このメソッドは、サーバに関する情報を返します。これには、Caché ソース・コード・ファイル REST API のバージョンと、サーバ上で使用可能なネームスペースに関する情報が含まれます。

例および追加情報については、このドキュメントのチュートリアルの章にある "Caché Server に関する情報の取得" を参照してください。

URL

GET http://server:port/api/atelier/

JSON メッセージ

以下の返されるコンテンツはサーバ記述子です。

{
    "status": {
        "errors": [],
        "summary": ""
    },
    "console": [],
    "result": {
        "content": {
            "version": "Cache for Windows (x86-64) 2017.2 (Build 691U) Wed Jun 7 2017 20:45:20 EDT",
            "id": "B70A630D-A34D-43B1-8EA5-EDF8F38992C4",
            "api": 2,
            "features": [
                {
                    "name": "DEEPSEE",
                    "enabled": true
                },
                {
                    "name": "ENSEMBLE",
                    "enabled": true
                },
                {
                    "name": "HEALTHSHARE",
                    "enabled": false
                }
            ],
            "namespaces": [
                "%SYS",
                "DOCBOOK",
                "ENSDEMO",
                "ENSEMBLE",
                "INVENTORY",
                "SAMPLES",
                "USER"
            ]
        }
    }
}

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

HeadServer メソッド

このメソッドは、サーバの HttpHeader を返します。

URL

HEAD http://server:port/api/atelier/

JSON メッセージ

返されるコンテンツはありません。

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

GetJobs

このメソッドは、Caché インスタンス上の実行中ジョブのリストを返します。

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 返りコード

  • HTTP 200:OK の場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

GetMetaData

このメソッドは、指定されたデータベースの METADATA.zip ファイルのバイナリ・コンテンツを返します。Atelier はこのファイルにインデックス情報を保管して、今後のセッションのためにこの情報を保存できるようにします。

URL

GET http://server:port/api/atelier/v1/%25SYS/metadata/database

Note:

% は URL 特殊文字であるため、リテラル % を指定するには、% の後ろに 25 (パーセント記号の 16 進コード) を付加する必要があります。したがって、リテラル %SYS を指定するには %25SYS を使用する必要があります。

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 404:指定されたソース・コード・ファイルが存在しない場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

GetCSPApps

このメソッドは、サーバ上で定義されているかサーバ上の指定したネームスペース向けに定義されている CSP アプリケーションのリストを返します。

URL

GET http://server:port/api/atelier/v1/%25SYS/cspapps

GET http://server:port/api/atelier/v1/%25SYS/cspapps/namespace

以下は値の説明です。

namespace

ネームスペースの名前を指定します。namespace を指定しない場合、このメソッドはすべてのネームスペースの CSP アプリケーションを返します。

Note:

% は URL 特殊文字であるため、リテラル % を指定するには、% の後ろに 25 (パーセント記号の 16 進コード) を付加する必要があります。したがって、リテラル %SYS を指定するには %25SYS を使用する必要があります。

URL パラメータ

URL パラメータの ?detail=1 を渡すことで、アプリケーションを詳しく記述しているオブジェクトが含まれた配列を返すことができます。

JSON メッセージ

以下の返されるコンテンツは、定義されている CSP アプリケーションを列挙している配列です。

{
  "status": {
    "errors": [],
    "summary": ""
  },
  "console": [],
  "result": {
    "content": [
      "/csp/broker",
      "/csp/sys",
      "/csp/sys/bi",
      "/csp/sys/exp",
      "/csp/sys/mgr",
      "/csp/sys/op",
      "/csp/sys/sec",
      "/isc/studio/rules",
      "/isc/studio/templates",
      "/isc/studio/usertemplates",
      "/csp/docbook",
      "/csp/documatic",
      "/csp/ensdemo",
      "/csp/ensemble",
      "/csp/samples",
      "/csp/user"
    ]
  }
}

以下は、detail=1 を使用した場合の同じ返されるコンテンツです。

{
  "status": {
    "errors": [],
    "summary": ""
  },
  "console": [],
  "result": {
    "content": [
      {
        "name": "/csp/broker",
        "default": false
      },
      {
        "name": "/csp/sys",
        "default": true
      },
      {
        "name": "/csp/sys/bi",
        "default": false
      },
      {
        "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/docbook",
        "default": true
      },
      {
        "name": "/csp/documatic",
        "default": false
      },
      {
        "name": "/csp/ensdemo",
        "default": true
      },
      {
        "name": "/csp/ensemble",
        "default": true
      },
      {
        "name": "/csp/samples",
        "default": true
      },
      {
        "name": "/csp/user",
        "default": true
      }
    ]
  }
}

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

GetNamespace

このメソッドは、指定されたネームスペースに関する情報を返します。

URL

GET http://server:port/api/atelier/v1/namespace

JSON メッセージ

以下は、ネームスペース DOCBOOK に関して返されるコンテンツ情報です。

{
  "status": {
    "errors": [],
    "summary": ""
  },
  "console": [],
  "result": {
    "content": {
      "name": "DOCBOOK",
      "db": [
        { "name": "DOCBOOK", "crhash": "5046B9BF0DE", "default": true },
        { "name": "CACHESYS", "crhash": "47763751EC", "default": false },
        { "name": "CACHE", "crhash": "4776EDD1C3", "default": false },
        { "name": "CACHELIB", "crhash": "5023332D0A7", "default": false }
      ],
      "features": [
        {
          "name": "ENSEMBLE",
          "enabled": false
        }
      ],
    }
  }
}

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

GetDocNames

このメソッドは、ソース・コード・ファイル名のリストを返します。オプションの cattype によって、ソース・コード・ファイルのタイプが限定されます。

例および追加情報については、このドキュメントのチュートリアルの章にある "ネームスペース内で定義されたソース・コード・ファイルの取得" を参照してください。

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 ファイル、OTH = その他)。既定値は * です。

type

ソース・コード・ファイルのタイプを指定します。* というワイルドカードまたは 3 文字のコードを指定できます。CLS の場合は、タイプは * である必要があります。RTN の場合は、タイプは mac、int、inc、bas、mvi、または mvb のいずれでもかまいません。CSP ではタイプには、コンマで区切った js、css などのファイル・タイプのリストを指定できます。既定値は * です。

URL パラメータ

  • URL パラメータの 'generated=1' は、生成されたソース・コード・ファイルを含める必要がある旨を指定します。

  • URL パラメータの 'filter' は、名前に合致させるために使用できる SQL フィルタを提供します。

JSON メッセージ

以下の返されるコンテンツは、ソース・コード・ファイル記述子の配列です。

{
  "status": {
    "errors": [],
    "summary": ""
  },
  "console": [],
  "result": {
    "content": [
      {
        "name": "%Activate.Enum.cls",
        "cat": "CLS",
        "ts": "2016-08-03 20:01:42.000",
        "upd": true,
        "db": "CACHELIB",
        "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 返りコード

  • HTTP 200:OK の場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

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 と入力 JSON メッセージ

PUT http://server:port/api/atelier/v1/namespace/doc/doc-name

PUT http://server:port/api/atelier/v2/namespace/doc/doc-name

以下は、ソース・コード・ファイル xyz.mac に対する PutDoc の入力 JSON メッセージの例を示しています。

{
 "enc": false,
 "content": [
   "ROUTINE xyz",
   "xyz ;",
   "   w \"hello\""
   ]
}
Note:

CSP ファイルを作成する場合は、doc-name の値には / (スラッシュ) 文字が含まれます。そのため、PutDoc を定義する URLMap には :docname の代わりにこのパラメータ名用に (.*) が含まれています。詳細は、"Caché での REST サービスの作成" の “REST の URL マップの作成” を参照してください。

URL パラメータ

URL パラメータの ?ignoreConflict=1 を渡すことで、ETAG チェックを省略できます。この例では、前回のアクセス以降にファイルが変更されていたとしても、ソース・コード・ファイルを強制的にサーバに書き込みます

HTTP ヘッダ

  • If-None-Match — 確実に正しいバージョンのファイルを上書きするには、前回の PutDoc または GetDoc の ETAG ヘッダで返されたタイムスタンプ値で If-None-Match ヘッダを指定します。

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 ファイル、OTH = その他)、および配列内に返されるソース・コード・ファイル・コンテンツです。

  • テキスト・ファイルの場合は、これは文字列の配列となり、'enc' json フィールドは false に設定されます。

  • バイナリ・ファイルの場合は、これは base64 でエンコードされたチャンクの配列となり、'enc' フィールドは true に設定されます。

バージョン 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 ファイルを取得する場合は、doc-name の値には / (スラッシュ) 文字が含まれます。そのため、GetDoc を定義する URLMap には :docname の代わりにこのパラメータ名用に (.*) が含まれています。詳細は、"Caché での 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 パラメータを無視します。

HTTP ヘッダ

  • If-None-Match — このファイルに対する前回の GetDoc または PutDoc 呼び出しから HTTP ETAG ヘッダで返された値を指定します。このファイルが前回の呼び出し以降に変更されていない場合は、GetDoc は HTTP 304 ステータスを返します。

JSON メッセージ

以下は、%Activate.Enum.cls を要求することによって返される結果の例です。

{
  "status": {
    "errors": [],
    "summary": ""
  },
  "console": [],
  "result": {
    "name": "%Activate.Enum.cls",
    "db": "CACHELIB",
    "ts": "2016-09-13 22:31:24.000",
    "upd": true,
    "cat": "CLS",
    "status": "",
    "enc": false,
    "flags": 0,
    "content": [
      "/// This class is the superclass for all enumerated types generated from",
      "/// a type library",
      "Class %Activate.Enum Extends %Integer [ Not ProcedureBlock, System = 3 ]",
      "{",
      "",
      "}",
      ""
    ]
  }
}

以下は、?binary=1 を使用した場合の同じ要求の結果です。

{
  "status": {
    "errors": [],
    "summary": ""
  },
  "console": [],
  "result": {
    "name": "%Activate.Enum.cls",
    "db": "CACHELIB",
    "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 ファイルを削除する場合は、doc-name の値には / (スラッシュ) 文字が含まれます。そのため、DeleteDoc を定義する URLMap には :docname の代わりにこのパラメータ名用に (.*) が含まれています。詳細は、"Caché での 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 ファイルの HTTP ヘッダを取得する場合は、doc-name の値には / (スラッシュ) 文字が含まれます。そのため、HeadDoc を定義する URLMap には :docname の代わりにこのパラメータ名用に (.*) が含まれています。詳細は、"Caché での REST サービスの作成" の “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 配列です。例 : [ "%Activate.Enum.cls", ...]

この呼び出しでは、Content-Type application/json ヘッダが必要です。

JSON メッセージ

返されるコンテンツは、ソース・コード・ファイル・オブジェクトの配列です。ソース・コード・ファイル・オブジェクトの構造の例については、"GetDoc" メソッドを参照してください。

ソース・コード・ファイルに関するエラーは、各ソース・コード・ファイル・オブジェクトの status プロパティに格納されます。このメソッドは storageOnly フラグをサポートしていません。このメソッドは ETAG チェックを実行しません (したがって、どのような状況でも HTTP 304 を返すことはありません)。

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 415:渡されたコンテンツ・タイプが application/json でない場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

DeleteDocs

このメソッドは、指定された一連のソース・コード・ファイルを削除します。このメソッドは、対応するソース・コード・ファイル・オブジェクト配列を返します。

URL

DELETE http://server:port/api/atelier/v1/namespace/docs

削除するファイルのリストは、JSON 配列として HTTP 要求の本体内に渡されます。例 : [ "%Activate.Enum.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 要求の本体内に渡されます。例 :[ "%Activate.Enum.cls", ...]

例および追加情報については、このドキュメントのチュートリアルの章にある "ファイルのコンパイル" を参照してください。

URL

POST http://server:port/api/atelier/v1/namespace/action/compile

この呼び出しでは、Content-Type application/json ヘッダが必要です。

URL パラメータ

  • URL パラメータの 'flags' (デフォルトは "cuk") を渡すことができます。このパラメータはコンパイラに渡されます。

  • コンパイルされたソース・コード・ファイルのソースが返されないようにするには、URL パラメータの 'source' を 0 という値に設定して渡します。

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>%Library.CacheStorage</Type>",
          "}",
          ""
        ],
        "db": "CACHESYS",
        "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 配列です。例 : [ "%Activate.Enum.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": "CACHELIB",
        "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 返りコード

  • HTTP 200:OK の場合。

  • HTTP 415:渡されたコンテンツ・タイプが application/json でない場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

Query

このメソッドは、Caché テーブルに対する 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_cache",
        "Description": "R/W access for this resource"
      },
      ...
      {
        "ID": "%sqltunetable",
        "Description": "Role for use by tunetable to sample tables irrespective of row level security"
      }
    ]
  }
}

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 415:渡されたコンテンツ・タイプが application/json でない場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

GetEnsClassType

このメソッドは、Ensemble クラス名のリストを返します。

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 メッセージ

以下の返されるコンテンツは、Ensemble クラス名の配列です。

{
  status: {
    errors: []
    summary: ""
  }
  console: []
  result: {
    content: [
        "Ens.Enterprise.MsgBank.BankTCPAdapter",
        "Ens.Enterprise.MsgBank.ClientTCPAdapter",
        "Ens.InboundAdapter",
        "Ens.OutboundAdapter"
    ]
  }
}

HTTP 返りコード

  • HTTP 200 : OK の場合。

  • HTTP 500 : 予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

GetAdpInputOutputClass

このメソッドは、指定された Ensemble アダプタの入力/出力タイプを返します。

URL

GET http://server:port/api/atelier/v1/namespace/ens/adapter/name

JSON メッセージ

以下は、返されるコンテンツの例です。

{
  status: {
    errors: []
    summary: ""
  }
  console: []
  result: {
    content: {
      input: "%Stream.Object"
      output: "%String"
    }
  }
}

HTTP 返りコード

  • HTTP 200:OK の場合。

  • HTTP 404:指定されたアダプタが存在しない場合。

  • HTTP 500:予期しないエラーが発生した場合 (詳細情報はステータス・エラー配列に格納されます)。

FeedbackOpens in a new tab