USER MANUALS

JSON ラッパー

ここでは、JSON データソースに基づいて JSON ラッパーを作成するために使用される構文について説明します。

CREATE WRAPPER JSON ステートメントの構文
CREATE [ OR REPLACE ] WRAPPER JSON <name:identifier>
    [ FOLDER = <literal> ]
    DATASOURCENAME = <name:identifier>
    [ TUPLEROOT <JSON path:literal> ]
    [ ROUTE <route> [ CHARSET = <literal> ] [ <route filters> ] ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
                            [, <source configuration property> ]* ] ) ]

<route> ::=
    HTTP <connection class name:literal> { GET | POST } <uri:literal>
    [ POSTBODY <body:literal> [ MIME <mimetype:literal> ] ]
    [ HEADERS (
         <header name:literal> = <header value:literal>
         [, <header name:literal> = <header value:literal> ]*
             )
    ]
    [ PAGINATION_SETTINGS ( <pagination settings> ) ]
    [ CHARSET = <encoding:literal> ]

<pagination settings> ::=
    PAGE_SIZE_PARAMETER = <literal>
    PAGE_SIZE = <integer>
    PAGE_NUMBER_PARAMETER = <literal>
    FIRST_PAGE_INDEX = <integer>
    OFFSET_FOR_NEXT_REQUESTS = <integer>
    MAX_NUMBER_OF_REQUESTS = <integer>
   |
    PAGE_SIZE_PARAMETER = <literal>
    PAGE_SIZE = <integer>
    NEXT_TOKEN_PARAMETER = <literal>
    NEXT_TOKEN_PATH = <literal>
    [ MAX_NUMBER_OF_REQUESTS = <integer> ]
   |
    PAGE_SIZE_PARAMETER = <literal>
    PAGE_SIZE = <integer>
    NEXT_TOKEN_PATH = <literal>
    [ MAX_NUMBER_OF_REQUESTS = <integer> ]
   |
    HEADER_WITH_NEXT_PAGE_URL = <literal>
    [ MAX_NUMBER_OF_REQUESTS = <integer> ]

<route filters> ::=
    FILTER ( <route filter> [, <route filter> ]* )

<route filter> ::= {
    DECRYPTAES256 PASSWORD = <literal> [ ENCRYPTED ]
  | DECRYPT PASSWORD = <literal> [ ENCRYPTED ]
  | UNZIP
  | GUNZIP
  | CUSTOM [ JARS <jar name:literal> [, <jar name:literal> ]* ]
    CLASSNAME = <literal> [ <route filter parameter> ]*
}

<route filter parameter> ::=
     <parameter name:identifier> = <literal> [ ENCRYPTED ] [ HIDDEN ]

<field> ::=
      <name:identifier> [ = <mapping:literal> ] [ : <type:literal>]
        [ ( { OBL | OPT } ) ]
        [ ( DEFAULTVALUE <literal> ) ]
        [ EXTERN ]
        [ <inline constraints> ]*
    | <name:identifier> [ = <mapping:literal> ] :
        ARRAY OF ( <register field> )
        [ ( DEFAULTVALUE <literal> ) ]
        [ <inline constraints> ]*
    | <name:register field>

<register field> ::=
    <name:identifier> [ = <mapping:literal> ] :
        REGISTER OF ( <field> [, <field> ]* )
          [ ( DEFAULTVALUE <literal> ) ]
          [ <inline constraints> ]*

<inline constraint> ::=
      [ NOT ] NULL
    | [ NOT ] UPDATEABLE
    | { SORTABLE [ ASC | DESC ] | NOT SORTABLE }
    | URIPARAM

<source configuration property> ::=
    DATAINORDERFIELDSLIST = { DEFAULT | ( <name:identifier> { ASC | DESC }
                                      [, <name:identifier> { ASC | DESC } ]* ) }

JSON ラッパーの変更ステートメントの構文も同様です。

ALTER WRAPPER JSON ステートメントの構文
ALTER WRAPPER JSON <name:identifier>
    [ DATASOURCENAME = <name:identifier> ]
    [ TUPLEROOT <JSON path:literal> ]
    [ ROUTE <route> [ CHARSET = <literal> ] [ <route filters> ] ]
    [ OUTPUTSCHEMA ( <field> [, <field> ]* ) ]
    [ SOURCECONFIGURATION ( [ <source configuration property>
    [, <source configuration property> ]* ] ) ]

<route> ::= (「 CREATE WRAPPER JSON ステートメントの構文 」を参照)

<route filters> ::= (「 CREATE WRAPPER JSON ステートメントの構文 」を参照)

<field> ::= (「 CREATE WRAPPER JSON ステートメントの構文 」を参照)

<source configuration property> ::= (「 CREATE WRAPPER JSON ステートメントの構文 」を参照)

Virtual DataPort は JSON 形式のドキュメントでのラッパーの作成をサポートしています。このタイプのラッパーを作成するには、データソースの名前を指定する必要があります (DATASOURCENAME パラメータ)。

JSON ラッパーには HTTP ルートを関連付けることができます。このルートは、 ROUTE パラメータを使用して宣言する必要があります。リクエストを実行する際、このルートの URL がデータソースルートの URL に連結されます。これにより、基本 URL(http://www.library.com/ など) を定義するデータソースを再利用して、アクセスするリソースごとに固有の相対 URL(「/books」、「/authors」、「/bookById/{id}」など) を使用してラッパーを作成できます。

JSON ラッパーは、ドキュメントの構造を分析し、複合型の中に他のエレメントをカプセル化する第 1 レベルの JSON タグを属性として返します (属性名としてタグ名を使用)。他のラッパーと同様に、ラッパーによって返されるスキーマを指定できます (OUTPUTSCHEMA)。

ラッパー作成ステートメントには OR REPLACE 修飾子を指定することもできます。指定されると、同じ名前のラッパーがすでに存在する場合に、その定義が新しい定義で置き換えられます。

URIPARAM 句は常に EXTERN 句と一緒に使用され、このフィールドが補間変数の値を表すことを示します。 URIPARAM を追加することで、フィールドの値は URL のクエリパラメータとしてエンコードされます。 URIPARAM は、パスが HTTP である JSON データソースによってラッパーが作成され、変数が URL のクエリパラメータの値である場合にのみ、追加する必要があります。詳細については、管理ガイドの「 HTTP パス 」(「 Virtual DataPort でのパスの種類 」のサブセクション) を参照してください。

最後に、特定のラッパープロパティを指定できます (SOURCECONFIGURATION)。Virtual DataPort は、ラッパーで実行できる操作を判別するためにこれらを考慮します。適用可能なプロパティは該当するステートメント宣言に示されています (「 CREATE WRAPPER JSON ステートメントの構文 」)。詳細については、「 ラッパー構成プロパティ 」を参照してください。

Add feedback