共通の仕様は、コンパクト形式と拡張形式の両方で使用されます。
応答本文には、処理されたリソースごとに JSON オブジェクトが含まれます。つまり、単一の処理済みリソースの JSON ルートオブジェクトは、複数の処理済みリソースの JSON オブジェクトです。いくつかのプロパティは、JSON オブジェクトに直接配置されます。
テーブル/データセットリクエストの単一のレコードリクエストまたは更新フィールドの挿入/更新が成功した場合、code JSON プロパティが存在しない可能性があり、そうでない場合は、処理されたリソースに関連付けられた HTTP 応答コードに対応します。検証レポートは常に存在します。一部のプロパティはオプションであり、リクエストパラメーターを使用して要求されたときに追加されます。詳細については、フォームデータ操作を参照してください。
{
  "validation": [
    {
      "level": "error",
      "message": "Field 'Value' is mandatory.",
      "blocksCommit": "never",
      "pathInRecord": "/value"
    },
    {
      "level": "error",
      "message": "Values between 'AD100' and 'AD200' (included) are prohibited.",
      "blocksCommit": "onUserSubmit-checkModifiedValues",
      "pathInRecord": "/code"
    },
    {
      "level": "warning",
      "message": "Value 'AD150' is prohibited.",
      "blocksCommit": "never",
      "pathInRecord": "/code"
    }
  ]
}
複数レコードの挿入リクエストが成功した場合、code JSON プロパティが存在しない可能性があり、そうでない場合は、処理されたリソースに関連付けられた HTTP 応答コードに対応します。検証レポートは常に存在します。一部のプロパティはオプションであり、リクエストパラメーターを使用して要求されたときに追加されます。
{
  "rows": [
    {
      "label": "My Lable1",
      "details": "http://.../root/table/1",
      "foreignKey": "1",
      "validation": [
        {
          "level": "error",
          "message": "Field 'Value' is mandatory.",
          "blocksCommit": "never",
          "pathInRecord": "/value"
        },
        {
          "level": "error",
          "message": "Values between 'AD100' and 'AD200' (included) are prohibited.",
          "blocksCommit": "onUserSubmit-checkModifiedValues",
          "pathInRecord": "/code"
        },
        {
          "level": "warning",
          "message": "Value 'AD150' is prohibited.",
          "blocksCommit": "never",
          "pathInRecord": "/code"
        }
      ]
    },
    {
      "label": "My Lable2",
      "details": "http://.../root/table/2",
      "foreignKey": "2",
      "validation": [
        {
          "level": "error",
          "message": "Field 'Value' is mandatory.",
          "blocksCommit": "never",
          "pathInRecord": "/value"
        },
        {
          "level": "error",
          "message": "Values between 'AD100' and 'AD200' (included) are prohibited.",
          "blocksCommit": "onUserSubmit-checkModifiedValues",
          "pathInRecord": "/code"
        },
        {
          "level": "warning",
          "message": "Value 'AD150' is prohibited.",
          "blocksCommit": "never",
          "pathInRecord": "/code"
        }
      ]
    }
  ]
}
テーブル/データセット内の単一のレコードリクエストまたは更新フィールドの挿入/更新が失敗した場合、応答本文は JSON 例外処理応答に対応します。
{
  "code": 422,
  "errors": [
    {
      "level": "error",
      "userCode": "Validation",
      "message": "Field 'Category' is mandatory.",
      "blocksCommit": "never",
      "pathInRecord": "/category"
    },
    {
      "level": "error",
      "userCode": "Validation",
      "message": "Values between 'AD100' and 'AD200' (included) are prohibited.",
      "blocksCommit": "onUserSubmit-checkModifiedValues",
      "pathInRecord": "/code"
    }
  ]
}
複数レコードの挿入リクエストが失敗した場合、応答本文は JSON 例外処理応答に対応します。
{
  "code": 422,
  "errors": [
    {
      "level": "error",
      "rowIndex": 0,
      "userCode": "Validation",
      "message": "Values between 'AD100' and 'AD200' (included) are prohibited.",
      "blocksCommit": "onUserSubmit-checkModifiedValues",
      "pathInRecord": "/code"
    },
    {
      "level": "error",
      "rowIndex": 0,
      "userCode": "Validation",
      "message": "Field 'Value Less Than' is mandatory.",
      "blocksCommit": "never",
      "pathInRecord": "/less_than_value"
    },
    {
      "level": "error",
      "rowIndex": 1,
      "userCode": "Validation",
      "message": "Values between 'AD100' and 'AD200' (included) are prohibited.",
      "blocksCommit": "onUserSubmit-checkModifiedValues",
      "pathInRecord": "/code"
    },
    {
      "level": "error",
      "rowIndex": 1,
      "userCode": "Validation",
      "message": "Field 'Value Less Than' is mandatory.",
      "blocksCommit": "never",
      "pathInRecord": "/less_than_value"
    }
  ]
}
このレポートは、フォームデータ操作を使用して取得できます。要求されたリソースに対するすべての検証制約を提供します。
これらの制約には、次のプロパティがあります。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | 制約の説明。 | はい | 
| 
 | 
 | 制約の制御ポリシー。可能な値は、 詳細については、ブロッキングと非ブロッキングの制約を参照してください。 | はい | 
| 
 | 
 | 制約の重大度。可能な値は、 | はい | 
| 
 | 
 | スキーマノードから始まる相対フィールドパス。 | いいえ (**) | 
| 
 | 
 | テーブルノードから始まる相対フィールドパス。 | いいえ (*) | 
(*) レコードおよびレコードフィールド操作でのみ使用できます。
(**) データセット操作でのみ使用できます。
ページ付けを使用して、パラメーター化可能な制限された数のデータを返します。ページ付けは、レコード、関連付け値、選択ノード値、セレクター、データスペース、およびデータセットのデータ型に適用できます。pagination という名前のコンテキストが常に返されます。このコンテキストを使用すると、UI と同様の方法でデータを参照できます。
ページ付けは常に有効になっています。
以下に、このコンテキストに関連する詳細情報を示します。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | 最初のページにアクセスするための URL。 | はい | 
| 
 | 
 | 前のページにアクセスするための URL。 | はい | 
| 
 | 
 | 次のページにアクセスするための URL。 | はい | 
| 
 | 
 | 最後のページにアクセスするための URL。 | はい | 
(*) データがこのコンテキストで利用可能かどうかのみを定義し、応答ではデータが利用可能かどうかを定義しません。
| XML スキーマ | JSON 形式 | 例 | メタタイプ | |
|---|---|---|---|---|
| 
 
 
 | 
 | "A text" "The escape of \"special character\" is preceded by a backslash." null | 
 
 
 | 型: 形式: | 
| 
 | 
 | "<p>An HTML tag can thus be written without trouble</p>" | 
 | 型: 形式: | 
| 
 | 
 | "mployee@mycompany.com" | 
 | 型: 形式: | 
| 
 | 
 | "en-US" | 
 | 型: 形式: | 
| 
 (外部キー) | 
 フォーマットが設定された外部キーの値が含まれます。 | 
 
 | 
 | 型: 形式: | 
| 
 | 
 | true false null | 
 | 型: 形式: | 
| 
 | 
 | -10.5 20.001 15 -1e-13 | 
 | 型: 形式: | 
| 
 | "yyyy-MM-dd" 形式の  | "2015-04-13" | 
 | 型: 形式: | 
| 
 | 以下の形式の  
 | "11:55:00" "11:55:00.000" | 
 | 型: 形式: | 
| 
 | 以下の形式の  
 | "2015-04-13T11:55:00" "2015-04-13T11:55:00.000" | 
 | 型: 形式: | 
| 
 | 
 | "https://fr.wikipedia.org/wiki/René_Descartes" | 
 | 型: 形式: | 
| 
 
 | 
 | 1596 | 
 | 型: 形式: | 
| 
 | 
 リソースフォーマットの値が含まれます。 | "ebx-tutorial:ext-images:frontpages/Bach.jpg" | 
 | 型: 形式: | 
| 
 | 形式 "#[A-Fa-f0-9]{6}" の  色のフォーマットが設定された値が含まれます。 | "#F6E0E0" | 
 | 型: 形式: | 
| 
 | 形式:"[a-zA-Z_][-a-zA-Z0-9_.]*"、最大 64 文字の  データセット名のフォーマット設定値が含まれます。 | "ebx-tutorial" | 
 | 型: 形式: | 
| 
 | 
 データスペースのフォーマット設定キー値が含まれます。 | "Bebx-tutorial" | 
 | 型: 形式: | 
レコードテーブルを使用して Insert 操作を呼び出すと、オプションでレポートを返すことができます。レポートには、次のプロパティを含む JSON オブジェクトが含まれています。
count には、JSON Number 型の int が含まれています。これは、リストされた行がすべての場合に網羅されていないため、処理されたレコードの数を定義します。
isPartialList には、JSON Boolean 型の boolean が含まれます。リストされた行が処理されたレコード全体の部分的なリストにすぎない場合は true、そうでない場合は false です。
rows には JSON Array が含まれ、各エレメントはリクエストエレメントの結果に対応します。
code には JSON Number 型の int が含まれており、レコードが挿入されたか更新されたかを確認できます。このプロパティは、updateOrInsert パラメーターが true に設定されている場合にのみ含まれます。
externalKey には、このレコードの外部キーとして使用されるコンテンツに対応する、JSON string 型の文字列が含まれています。このプロパティは、パラメーター includeForeignKey が true に設定されている場合にのみ含まれます。
label には、JSON String 型の 文字列が含まれており、レコードラベルを取得できます。このプロパティは、パラメーター includeLabel が yes に設定されている場合にのみ含まれます。
リソース URL に対応する JSON String 型の 文字列を含む details。このプロパティは、パラメーター includeDetails が true に設定されている場合にのみ含まれます。
{
  "count": 2,
  "isPartialList": false,
  "rows": [
    {
      "code": 204,
      "foreignKey": "62",
      "label": "Claude Debussy",
      "details": "http://.../root/individu/62"
    },
    {
      "code": 201,
      "foreignKey": "195",
      "label": "Camille Saint-Saëns",
      "details": "http://.../root/individu/195"
    }
  ]
}
Delete 操作を呼び出すと、レポートが返されます。レポートには、次のプロパティを含む JSON オブジェクトが含まれています。
JSON Number 型の整数を含む deletedCount は、削除されたレコードの数に対応します。
JSON Number 型の整数を含む occultedCount は、非表示にされたレコードの数に対応します。
JSON Number 型の整数を含む inheritedCount は、継承されたレコードの数に対応します。
{
  "deletedCount": 1,
  "inheritedCount": 0,
  "occultedCount": 0
}
返された各レコードには、技術データに対応する ebx-metadata/system プロパティの下にシステムレコードメタデータを含めることができます。システムメタデータは、要求および並べ替えが可能です。
レコードのメタデータを含めるには、選択操作の includeMetadata=system パラメーター値を参照してください。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | レコードのユニバーサル固有識別子。 | はい | 
| 
 | 
 | 作成ユーザーの識別子。 詳細については、 | はい | 
| 
 | 
 | 作成日 | はい | 
| 
 | 
 | 最終更新ユーザーの識別子。 詳細については、 | はい | 
| 
 | 
 | 最終更新日。 | はい | 
拡張形式
{
  ...,
  "ebx-metadata":{
    "content":{
      "system":{
        "content":{
          "uuid":{
            "content":"7FE03810-6A67-11ED-A892-00FF20216100"
          },
          "creator":{
            "content":"Uadmin"
          },
          "creation_time":{
            "content":"2022-11-22T14:13:47.793"
          },
          "updater":{
            "content":"Uadmin"
          },
          "update_time":{
            "content":"2022-11-29T17:46:55.686"
          }
        }
      }
    }
  }
}
コンパクト形式
{
  ...,
  "ebx-metadata":{
    "system":{
      "uuid":"7FE03810-6A67-11ED-A892-00FF20216100",
      "creator":"Uadmin",
      "creation_time":"2022-11-22T14:13:47.793",
      "updater":"Uadmin",
      "update_time":"2022-11-29T17:46:55.686"
    }
  }
}
byDelta モードでは、JSON ソースドキュメントから欠落しているデータモデルエレメントを無視できます。このモードは、RESTful 操作によって (デフォルトで) 有効になります。次の表は、エレメントがソースドキュメントに含まれていない場合の Insert および Update 操作の動作をまとめたものです。
詳細については、RESTful データサービスの Update 操作と Insert 操作、および Java API の ImportSpec.setByDelta を参照してください。
| JSON ソースドキュメントの状態 | 動作 | 
|---|---|
| プロパティがソースドキュメントに存在しない | 
 
 
 ターゲットフィールドは、次のいずれかの値に設定されます。 
 注意インポートを実行するユーザーは、ターゲットフィールド値を作成または変更するために必要な権限を持っている必要があります。それ以外の場合、操作は中止されます。 | 
| エレメントが存在し、その値が  | ターゲットフィールドは、リストを除いて常に  | 
フィールド xs:date、xs:time、および xs:dateTime の値には、JSON プリミティブ型に関連付けられたタイムゾーンは含まれません。
メタモデルからの filterable および sortable の値は、デフォルトの検索戦略に限定されます。