共通

最終公開日 : Sep 16, 2026

はじめに

共通の仕様は、コンパクト形式と拡張形式の両方の形式で使用されます。

グローバル構造

JSON 応答本文

フォームデータカテゴリ

応答本文には、処理されたリソースごとに 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 形式 説明 必須
message String 制約の説明。 はい
blocksCommit String 制約の制御ポリシー。可能な値は、onInsertUpdateOrDelete、onUserSubmit-checkModifiedValues、neverです。 詳細については、ブロッキング制約と非ブロッキング制約を参照してください。 はい
level String 制約の重大度。可能な値は、info、warning、error、または fatalです。 はい
pathInDataset String スキーマノードから始まる相対フィールドパス。 いいえ (**)
pathInRecord String テーブルノードから始まる相対フィールドパス。 いいえ (*)
(*) レコードおよびレコードフィールド操作でのみ使用できます。
(**) データセット操作でのみ使用できます。
以下も参照してください。:

コンテンツ

ページ付け

ページ付けを使用して、パラメーター化可能な制限された数のデータを返します。ページ付けは、レコード、関連付け値、選択ノード値、セレクター、データスペース、およびデータセットのデータ型に適用できます。pagination という名前のコンテキストが常に返されます。このコンテキストを使用すると、UI と同様の方法でデータを参照できます。
ページ付けは常に有効になっています。
以下も参照してください。:
以下に、このコンテキストに関連する詳細情報を示します。
JSON プロパティ JSON 形式 説明 必須
firstPage String または null (*) 最初のページにアクセスするための URL。 はい
previousPage String または null (*) 前のページにアクセスするための URL。 はい
nextPage String または null (*) 次のページにアクセスするための URL。 はい
lastPage String または null (*) 最後のページにアクセスするための URL。 はい
注意:
(*) データがこのコンテキストで利用可能かどうかのみを定義し、応答ではデータが利用可能かどうかを定義しません。

単純型のコンテンツ

XML スキーマ
JSON 形式
例
メタタイプ
xs:string
xs:Name
osd:text
String (Unicode 文字。RFC4627 を参照)
"A text"
"The escape of \"special character\" is preceded by a backslash."
null
string
name
text
型:string
形式:n/a
osd:html
String (Unicode 文字。RFC4627 を参照)
"<p>An HTML tag can thus be written without trouble</p>"
html
型:string
形式:html
osd:email
String (Unicode 文字。RFC4627 を参照)
"employee@mycompany.com"
email
型:string
形式:email
osd:locale
String (言語タグ。RFC1766 を参照)
"en-US"
locale
型:string
形式:locale
xs:string
(外部キー)
String
フォーマットが設定された外部キーの値が含まれます。
"0"
"true|99"
foreignKey
型:string
形式:n/a
xs:boolean
Boolean
true
false
null
boolean
型:boolean
形式:n/a
xs:decimal
数値または null
-10.5
20.001
15
-1e-13
decimal
型:number
形式:double
xs:date
"yyyy-MM-dd" 形式の String
"2015-04-13"
date
型:string
形式:date
xs:time
以下の形式の String
  • "HH:mm:ss"
  • "HH:mm:ss.SSS"
"11:55:00"
"11:55:00.000"
time
型:string
形式:date-time
xs:dateTime
以下の形式の String
  • "yyyy-MM-ddTHH:mm:ss"
  • "yyyy-MM-ddTHH:mm:ss.SSS"
"2015-04-13T11:55:00"
"2015-04-13T11:55:00.000"
dateTime
型:string
形式:date-time
xs:anyURI
String (URI。RFC3986 を参照)
"https://fr.wikipedia.org/wiki/René_Descartes"
anyURI
型:string
形式:uri
xs:int
xs:integer
Number または null
1596
int
型:integer
形式:int32
osd:resource
String
リソースフォーマットの値が含まれます。
"ebx-tutorial:ext-images:frontpages/Bach.jpg"
resource
型:string
形式:n/a
osd:color
形式 "#[A-Fa-f0-9]{6}" の String
色のフォーマットが設定された値が含まれます。
"#F6E0E0"
color
型:string
形式:n/a
osd:datasetName
形式:"[a-zA-Z_][-a-zA-Z0-9_.]*"、最大 64 文字の String
データセット名のフォーマット設定値が含まれます。
"ebx-tutorial"
dataset
型:string
形式:n/a
osd:dataspaceKey
[BV][a-zA-Z0-9_:.\-\|]+ 形式、最大 33 文字の String
データスペースのフォーマット設定キー値が含まれます。
"Bebx-tutorial"
dataspace
型:string
形式:n/a

Insert 操作レポート

レコードテーブルを使用して Insert 操作を呼び出す場合、オプションでレポートを返すことができます。レポートには、次のプロパティを含む JSON オブジェクトが含まれています。
  • count には、JSON Number 型の int が含まれています。これは、リストされた行がすべての場合に網羅されていないため、処理されたレコードの数を定義します。
  • isPartialList には、JSON Boolean 型の boolean が含まれます。リストされた行が処理されたレコード全体の部分的なリストにすぎない場合は true、そうでない場合は false です。
  • rows には JSON Array が含まれ、各エレメントはリクエストエレメントの結果に対応します。
  • code には JSON Number 型の int が含まれており、レコードが挿入されたか更新されたかを確認できます。このプロパティは、updateOrInsert パラメーターが true に設定されている場合にのみ含まれます。
  • foreignKey には、このレコードの外部キーとして使用されるコンテンツに対応する、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 操作レポート

Delete 操作を呼び出すと、レポートが返されます。レポートには、次のプロパティを含む JSON オブジェクトが含まれています。
  • JSON Number 型の整数を含む deletedCount は、削除されたレコードの数に対応します。
  • JSON Number 型の整数を含む occultedCount は、非表示にされたレコードの数に対応します。
  • JSON Number 型の整数を含む inheritedCount は、継承されたレコードの数に対応します。
    {
      "deletedCount": 1,
      "inheritedCount": 0,
      "occultedCount": 0
    }
以下も参照してください。:

技術データ

返された各レコードには、技術データに対応する ebx-metadata/system プロパティの下にシステムレコードメタデータを含めることができます。システムメタデータは、要求および並べ替えが可能です。
レコードのメタデータを含めるには、選択操作の includeMetadata=system パラメーター値を参照してください。
JSON プロパティ JSON 形式 説明 必須
uuid String レコードのユニバーサル固有識別子。 はい
creator String 作成ユーザーの識別子。 詳細については、UserReference を参照してください。 はい
creation_time String 作成日 はい
updater String 最終更新ユーザーの識別子。 詳細については、UserReference を参照してください。 はい
update_time String 最終更新日。 はい
拡張形式
{
  ...,
  "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 操作の動作をまとめたものです。
詳細については、Java API の RESTful データサービス Update 操作と Insert 操作、および ImportSpec.setByDelta を参照してください。
JSON ソースドキュメントの状態
動作
プロパティがソースドキュメントに存在しない
byDelta モードがアクティブになっている場合 (デフォルト)
  • Update 操作の場合、フィールド値は変更されません。
  • Insert 操作の場合、動作は byDelta モードが無効になっている場合と同じです。
    byDelta モードがRESTful 操作パラメーターによって無効になっている場合
    ターゲットフィールドは、次のいずれかの値に設定されます。
  • エレメントがデフォルト値を定義している場合、ターゲットフィールドはそのデフォルト値に設定されます。
  • エレメントが文字列またはリスト以外のタイプの場合、ターゲットフィールド値は null に設定されます。
  • エレメントが集約リストの場合、ターゲットフィールド値は空のリスト値に設定されます。
  • エレメントが null と空の文字列を区別する文字列の場合、ターゲットフィールドの値は null に設定されます。2 つを区別しない文字列の場合は、空の文字列です。
  • エレメント (単純または複合) がデータサービスで非表示になっている場合、ターゲット値は変更されません。
    以下も参照してください。:
注意:
インポートを実行するユーザーは、ターゲットフィールド値を作成または変更するために必要な権限を持っている必要があります。それ以外の場合、操作は中止されます。
エレメントが存在し、その値が null (例:"content":null)
ターゲットフィールドは、リストを除いて常に null に設定されます。リストの場合、サポートされません。

既知の制限事項

フィールド値

フィールド xs:date、xs:time、および xs:dateTime の値には、JSON プリミティブ型に関連付けられたタイムゾーンは含まれません。

インデックス作成と検索戦略

メタモデルからの filterable および sortable の値は、デフォルトの検索戦略に限定されます。
以下も参照してください。: