JSON コンパクト形式の目的は、軽量構造を使用してマスターデータを取得することです。キーバリュー設計に従って、技術情報なしで最も簡単な方法でデータを表示します。コンパクト形式をアクティブにするには、data-compact や form-data-compact などの compact サフィックス REST カテゴリを URL で使用する必要があります。
リクエストの本文は JSON オブジェクトで表され、その内容は操作とカテゴリによって異なります。
データセットノード
指定したノードの下のターミナルノードのターゲット値を指定します。このリクエストは、データセットノードの Update 操作に使用されます。
{
"nodeName1": true,
"nodeName2": 2,
"nodeName3": "Hello"
}
HTTP リクエストと HTTP 応答の間で JSON 対称構造を確保するために、列挙ノードリクエストの形式は次のようになります。
{
"enumerationNode": {
"key": "a key value"
}
}
レコード
各フィールドの値を設定して、ターゲットレコードの内容を指定します。欠落しているフィールドの場合、動作はリクエストパラメーター byDelta によって異なります。この構造体は、ローカル列挙型の依存関係フィールド値が宣言されている場合に、テーブルレコードの挿入、レコードの更新、またはセレクターの Select 操作に使用されます。
{
"gender": {
"key": "M"
},
"lastName": "Chopin",
"lastName-en": "Chopin",
"firstName": "Fryderyk",
"firstName-en": "Frédéric",
"birthDate": "1810-03-01",
"deathDate": "1849-10-17",
"jobs": [
{
"key": "CM"
},
{
"key": "PI"
}
],
"infos": [
"https://en.wikipedia.org/wiki/Chopin"
]
}
レコードフィールド
各フィールドの値を設定して、レコードターミナルノードの下のフィールドのターゲット値を指定します。欠落しているフィールドの場合、動作はリクエストパラメーター byDelta によって異なります。この構造は、テーブルレコードの更新にのみ使用されます。
{
"jobs": [
{
"key": "CM"
},
{
"key": "PI"
}
]
}
レコードテーブル
各フィールドの値を示すことにより、1 つ以上のレコードの内容を定義します。欠落しているフィールドの場合、動作はリクエスト byDelta のパラメーターによって異なります。この構造は、テーブルのレコードを挿入または更新するときに使用されます。
[
{
"gender": {
"key": "M"
},
"lastName": "Saint-Saëns",
"firstName": "Camille",
"birthDate": "1835-10-09",
...
},
{
"gender": {
"key": "M"
},
"lastName": "Debussy",
"firstName": "Claude",
"birthDate": "1862-10-22",
...
}
]
削除するレコードテーブル
1 つ以上のレコードを定義します。この構造は、同じテーブルから複数のレコードを削除するときに使用されます。
[
{
"details": "http://.../root/table/1"
},
{
"details": "http://.../root/table/2"
},
{
"primaryKey": "./oid=3"
},
{
"foreignKey": "4"
},
...
]
フィールド
ターゲットフィールドの内容を指定します。このリクエストは、フィールドの更新時に使用されます。
リクエストの構造は、ノード値で定義されているものと同じです。
ユーザーインターフェイスを開くまたは閉じる
ユーザーインターフェイスが開いているか閉じているか、および使用不可メッセージを指定します。
{
"toolStatus": {
"key": true, // or false
"label": "Open"
},
"toolStatusCloseMessage": "Access is temporarily forbidden for maintenance."
}
リクエストで言及できるのは書き込み可能なフィールドのみです。これには、次の場合は含まれません。
関連付けノード
選択ノード
値関数
セッターを持たない JavaBean フィールド
認証されたユーザーのノードに対する書き込み不可能なアクセス許可
応答の本文は JSON オブジェクトで表され、その内容は操作とカテゴリによって異なります。
データセットツリー
テーブルノードと非ターミナルグループノードの階層が含まれます。
{
"hasChildren": false,
"rootName": {
"settings": {
"weekTimeSheet": {},
"vacationRequest": {}
},
"table1": {},
"table2": {}
}
}
データセットノード
指定されたノードの下のターミナルノードのリストが含まれます。
{
"nodeName1": true,
"nodeName2": 2,
"nodeName3": "Hello"
}
データセットのリスト
それぞれ指定されたデータスペースまたはデータセットのルート データセットまたは子データセットのリストを含む JSON オブジェクト。
すべてのデータセット JSON オブジェクト には次のプロパティがあります。
JSON プロパティ | JSON 形式 | 説明 | 必須 |
|---|---|---|---|
|
| データセットのフォーマット設定されたキーを指定します。 形式: | はい |
|
| ユーザーの権限に従ってデータセットを選択できるかどうかを指定します。 | はい |
|
| ユーザーの権限に従って、データセットに子があるかどうかを指定します。 | はい |
{
"rows": [
{
"key": "mydataset",
"isSelectAllowed": true,
"hasChildren": true
},
{
// Another dataset
}
],
"pagination": {
"firstPage": "http://.../data/v1/BReference?pageSize=4",
"nextPage": "http://.../data/v1/BReference?pageSize=4&firstElementIndex=4",
"previousPage": null,
"lastPage": "http://.../data/v1/BReference?pageSize=4&firstElementIndex=8"
}
}
データセット情報
次のプロパティを含む JSON オブジェクト
JSON プロパティ | JSON 形式 | 説明 | 必須 |
|---|---|---|---|
|
| データセットのフォーマット設定されたキー値を指定します。 形式: | はい |
| JSON | データセットスキーマの場所を指定します。モジュールスキーマにパッケージ化されたものとパブリケーションのみがサポートされます。 | はい |
|
| データセットスキーマが配置されているモジュール名を指定します。 | いいえ |
|
| データセットスキーマが配置されているモジュール内のパスを指定します。 | いいえ |
|
| データセットスキーマのパブリケーション名を指定します。 | いいえ |
|
| データセットスキーマパブリケーションのデータモデル名を指定します。 | いいえ |
|
| データセットスキーマパブリケーションのバージョン名を指定します。 | いいえ |
|
| 親データセットのフォーマット設定されたキー値を指定します。親がない場合は、 | はい |
|
| データセットがアクティブ化されているかどうかを指定します。 | はい |
|
| 所有者プロファイルを指定します。 | はい |
|
| 作成者プロファイルを指定します。 | はい |
|
| 作成時刻を指定します。 | はい |
|
| アップデータープロファイルを指定します。 | はい |
|
| 更新時刻を指定します。 | はい |
{
"key": "mydataset",
"dataModel": {
"module": "modulename",
"pathInModule": "/WEB-INF/ebx/schemas/mydataset.xsd"
},
"parent": null,
"activated": true,
"owner": "Beveryone",
"creator": "Uadmin",
"creation_time": "2023-10-10T15:49:03.023",
"updater": "Uadmin",
"update_time": "2023-10-10T15:49:03.005"
}
テーブル
次のプロパティを含む JSON オブジェクト
選択したレコードの JSON 配列に対応する行。各レコードは、JSON オブジェクトで表されます。レコードが選択されていない場合、JSON 配列は空です。
(オプション) ページ付けデータを含むページ付け。
{
"rows": [
{
"id": 1,
"firstName": "Claude",
"lastName": "Levi-Strauss"
},
{
"id": 2,
"firstName": "Sigmoud",
"lastName": "Freud"
},
{
"id": 3,
"firstName": "Alfred",
"lastName": "Dreyfus"
}
],
"pagination": {
"firstPage": null,
"previousPage": null,
"nextPage": "http://.../root/individu?pageRecordFilter=./id=9&pageSize=9&pageAction=next",
"lastPage": "http://.../root/individu?pageSize=9&pageAction=last"
}
}
レコード
レコードコンテンツを含む JSON オブジェクト。
{
"pk": "pk1",
"name": "Name1",
"name-fr": "Name1",
"parent": null
}
フィールド
コンパクト JSON 形式は、関連付けノードと選択ノードをサポートしていません。
他の種類のノードの場合、それらには現在のノード値が含まれます。
ユーザーインターフェイスの状態の取得
ユーザーインターフェイスのステータスと使用不可メッセージが含まれます。
{
"toolStatus": {
"key": true, // or false
"label": "Open"
},
"toolStatusCloseMessage": "Access is temporarily forbidden for maintenance."
}
ノード、レコード、フィールドのプロパティと値は、解決された権限 (権限を参照) によっては非表示になる場合があります。
このセクションは常に含まれており、追加のフィールドなしでマスターデータが含まれています。
ノード値には、データまたはラベルと、列挙の場合は詳細リンクのみが含まれます。関連付けと選択を除くすべてのノードで使用できます。
ノードのコンテンツを記述するキーと値の JSON エントリに対応します。
XML スキーマ | JSON 形式 | 例 |
|---|---|---|
Group
|
サブノードごとのプロパティが含まれます。 | 単純オカレンスグループの例
{
"road": "11 rue scribe",
"zipcode": "75009",
"country": "France"
}
|
List
|
JSON 各 JSON |
[ 0, 1, 2, 3, 4 ] 複数オカレンスグループの例
[
{
"road": "11 rue scribe",
"zipcode": "75009",
"country": "France"
},
{
"road": "711 Atlantic Ave",
"zipcode": "MA 02111",
"country": "United States"
}
]
|
Enumeration
|
| 外部キーの例
{
"key":"1",
"details":"http://.../Bdataspace/dataset/root/nationality/FRA",
"label":"Française"
}
|