Cloud Software Group, Inc. EBX®
ドキュメント > 開発者ガイド > REST データサービス > JSON 形式
ナビゲーションモードドキュメント > 開発者ガイド > REST データサービス > JSON 形式

共通

はじめに

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

グローバル構造

JSON 応答本文

フォームデータカテゴリ

応答本文には、処理されたリソースごとに JSON オブジェクトが含まれます。つまり、単一の処理済みリソースの JSON ルートオブジェクトは、複数の処理済みリソースの JSON オブジェクトです。いくつかのプロパティは、JSON オブジェクトに直接配置されます。

以下も参照してください。

フォーム検証レポート

このレポートは、フォームデータ操作を使用して取得できます。要求されたリソースに対するすべての検証制約を提供します。

これらの制約には、次のプロパティがあります。

JSON プロパティ

JSON 形式

説明

必須

message

String

制約の説明。

はい

blocksCommit

String

制約の制御ポリシー。可能な値は、onInsertUpdateOrDeleteonUserSubmit-checkModifiedValuesnever です。

詳細については、ブロッキングと非ブロッキングの制約を参照してください。

はい

level

String

制約の重大度。可能な値は、infowarningerror、または 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 形式

メタタイプ

OpenAPI

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 を参照)

"mployee@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

Number または 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": 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 オブジェクトが含まれています。

{
  "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 操作の動作をまとめたものです。

詳細については、RESTful データサービスの Update 操作Insert 操作、および Java API の ImportSpec.setByDelta を参照してください。

JSON ソースドキュメントの状態

動作

プロパティがソースドキュメントに存在しない

byDelta モードがアクティブになっている場合 (デフォルト)

  • Update 操作の場合、フィールド値は変更されません。

  • Insert 操作の場合、動作は byDelta モードが無効になっている場合と同じです。

byDelta モードが RESTful 操作パラメーターによって無効になっている場合

ターゲットフィールドは、次のいずれかの値に設定されます。

  • エレメントがデフォルト値を定義している場合、ターゲットフィールドはそのデフォルト値に設定されます。

  • エレメントが文字列またはリスト以外のタイプの場合、ターゲットフィールド値は null に設定されます。

  • エレメントが集約リストの場合、ターゲットフィールド値は空のリスト値に設定されます。

  • エレメントが null と空の文字列を区別する文字列の場合、ターゲットフィールドの値は null に設定されます。2 つを区別しない文字列の場合は、空の文字列。

  • エレメント (単純または複合) がデータサービスで非表示になっている場合、ターゲット値は変更されません。

    以下も参照してください。
注意

インポートを実行するユーザーは、ターゲットフィールド値を作成または変更するために必要な権限を持っている必要があります。それ以外の場合、操作は中止されます。

エレメントが存在し、その値が null (例:"content": null)

ターゲットフィールドは、リストを除いて常に null に設定されます。リストの場合、サポートされません。

既知の制限事項

フィールド値

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

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

メタモデルからの filterable および sortable の値は、デフォルトの検索戦略に限定されます。

以下も参照してください。
ドキュメント > 開発者ガイド > REST データサービス > JSON 形式