すべてのプロダクト
Search
ドキュメントセンター

DataWorks:RestAPI (HTTP) データソース

最終更新日:Oct 29, 2025

RestAPI データソースを作成して、データ同期タスクを使用して、RESTful API 経由で JSON データを MaxCompute などの別のデータソースに書き込むことができます。RestAPI データソースは、他のデータソースからデータを受信する宛先として使用することもできます。このトピックでは、DataWorks における RestAPI データソースのデータ同期機能について説明します。

制限事項

サポートされているフィールドタイプ

重要

データを宛先に同期する場合、単層のテーブルスキーマのみがサポートされます。ネストされたフィールド構造はサポートされていません。たとえば、API が `{data: {user: { id: 1, name:'lily'}, value: 123}}` という構造を返す場合、フィールドは宛先で `user_id`、`user_name`、`value` などの並列フィールドとして処理される必要があります。

タイプ分類

Data Integration 列構成タイプ

整数

LONG, INT

文字列

STRING

浮動小数点

DOUBLE, FLOAT

ブール値

BOOLEAN

日時

DATE

データソースの追加

DataWorks で同期タスクを開発する前に、「データソース管理」の指示に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターの infotip を表示して、パラメーターの意味を理解できます

データ同期タスクの開発

同期タスクの構成のエントリポイントと手順については、次の構成ガイドをご参照ください。

単一テーブルのオフライン同期タスクの構成ガイド

よくある質問

  • データリクエストのページ数のみを指定できますか?

    • 回答: はい、できます。

  • 自動ページングはサポートされていますか?たとえば、リクエストパラメーターに対してこれ以上データが返されない場合にページングを停止できますか?

    • 回答: いいえ、サポートされていません。そうしないと、データを分割できません。

  • ページ数を指定する必要があるが、指定した数が実際のページ数より大きい場合、後続のページが空の場合はどうなりますか?

    • 回答: 後続のページが空の場合、SQL クエリからの空の結果として扱われます。システムは次のクエリに進みます。

  • 単層の JSON 解析のみがサポートされていますか?

    • 回答: はい、そうです。ディープ解析は実行されません。

  • DataWorks Data Integration で RestAPI の非配列タイプを構成するにはどうすればよいですか?

    • 回答: reader セクションの parameter セクションで、dataPath パラメーターを非配列データのパスに設定します。たとえば、dataPath:"data.list" です。これにより、プラグインは読み取りたいデータフィールドを見つけることができます。次に、dataMode パラメーターを multiData に設定します。この設定は、ソースデータが配列形式でなくても、データを複数の個別のレコードとして処理するように DataWorks に指示します。

      説明

      multiData モードでは、column 構成は適用されないことに注意してください。dataPath パラメーターで読み取るデータパスを直接指定する必要があります。

      次のコードは、DataWorks Data Integration での RestAPI の非配列タイプの構成例を示しています:

      reader: {
        name: "restapi",
        parameter: {
          dataPath: "data.list",
          dataMode: "multiData",
          // その他のパラメーター
        }
      }

付録: スクリプトデモとパラメーターの説明

コードエディタを使用してバッチ同期タスクを構成する

コードエディタを使用してバッチ同期タスクを構成する場合は、統一されたスクリプト形式の要件に基づいてスクリプト内の関連パラメーターを構成する必要があります。詳細については、「コードエディタでタスクを構成する」をご参照ください。次の情報は、コードエディタを使用してバッチ同期タスクを構成する際にデータソースに対して構成する必要があるパラメーターについて説明しています。

Reader スクリプトデモ

  • 次のコードはスクリプトの例です:

    {
        "type":"job",
        "version":"2.0",
        "steps":[
            {
                "stepType":"restapi",
                "parameter":{
                    "url":"http://127.0.0.1:5000/get_array5",
                    "dataMode":"oneData",
                    "responseType":"json",
                    "column":[
                        {
                            "type":"long",
                            "name":"a.b"  // a.b パスからデータを検索します。
                        },
                        {
                            "type":"string",  // a.c パスからデータを検索します。
                            "name":"a.c"
                        }
                    ],
                    "dirtyData":"null",
                    "method":"get",
                    "socketTimeout":"60000",
                    "defaultHeader":{
                        "X-Custom-Header":"test header"
                    },
                    "customHeader":{
                        "X-Custom-Header2":"test header2"
                    },
                    "parameters":"abc=1&def=1"
                },
                "name":"restapireader",
                "category":"reader"
            },
            {
                "stepType":"stream",
                "parameter":{
    
                },
                "name":"Writer",
                "category":"writer"
            }
        ],
        "setting":{
            "errorLimit":{
                "record":""
            },
            "speed":{
                "throttle":true,  // throttle が false に設定されている場合、mbps パラメーターは有効にならず、データレートは制限されません。throttle が true に設定されている場合、データレートは制限されます。
                "concurrent":1,  // ジョブの同時実行数。
                "mbps":"12"// 最大データレート。1 mbps は 1 MB/s に相当します。
            }
        },
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                }
            ]
        }
    }
  • 次のコードは、コードエディタでの構成を示しています:

    Restapi プラグインが HTTP または HTTPS リクエストを送信した後、JSON 形式の応答本文を受信します。dataPath パラメーターは、本文からデータを抽出するために使用される JSONPath を指定します。次の 2 つの例は、パラメーターの構成方法を示しています:
    
    
    例 1: API は次の本文を返します。ビジネスデータは DATA フィールドにあり、API は一度に複数のデータ行を返します。DATA は配列です。
    {
        "HEADER": {
            "BUSID": "bid1",
            "RECID": "uuid",
            "SENDER": "dc",
            "RECEIVER": "pre",
            "DTSEND": "202201250000"
        },
        "DATA": [
            {
                "SERNR": "sernr1"
            },
            {
                "SERNR": "sernr2"
            }
        ]
    }
    
    DATA から複数のデータ行を複数の同期レコードとして抽出する場合は、column を "column": [ "SERNR" ]、dataMode を "dataMode": "multiData"、dataPath を "dataPath": "DATA" に設定します。
    
    
    例 2: API は次の本文を返します。ビジネスデータは content.DATA フィールドにあり、API は一度に 1 行のデータを返します。DATA はオブジェクトです。
    {
        "HEADER": {
            "BUSID": "bid1",
            "RECID": "uuid",
            "SENDER": "dc",
            "RECEIVER": "pre",
            "DTSEND": "202201250000"
        },
        "content": {
            "DATA": {
                "SERNR": "sernr2"
            }
        }
    }
    
    content.DATA から 1 行のデータを 1 つの同期レコードとして抽出する場合は、column を "column": [ "SERNR" ]、dataMode を "dataMode": "oneData"、dataPath を "dataPath": "content.DATA" に設定します。
                    

Reader スクリプトパラメーター

説明

次のパラメーターは、データソースを追加して Data Integration ノードを構成するときに使用されます。

このプラグインはスケジューリングパラメーターをサポートしていません。

パラメーター

説明

必須

デフォルト値

url

RESTful API のアドレス。

はい

なし

dataMode

RESTful リクエストに対して返される JSON データのフォーマット。

  • oneData: 返された JSON データから 1 つのデータを取得します。

  • multiData: 返された JSON データから JSON 配列を取得し、複数のデータをライターに渡します。

はい

なし

responseType

返されるデータのフォーマット。JSON のみがサポートされています。

はい

JSON

column

読み取るフィールドのリスト。type パラメーターはソースデータのタイプを指定し、name パラメーターは現在の列のデータを取得する JSON パスを指定します。列フィールドを指定できます。例:

"column":[{"type":"long","name":"a.b" // a.b パスからデータを検索します。}, {"type":"string","name":"a.c" // a.c パスからデータを検索します。}]

各列に type と name パラメーターを指定する必要があります。

はい

なし

dataPath

返された結果から単一の JSON オブジェクトまたは JSON 配列をクエリするために使用されるパス。

いいえ

なし

method

リクエストメソッド。有効な値: get および post。

はい

なし

socketTimeout

RESTful API からデータにアクセスするためのソケットタイムアウト期間。単位: ミリ秒。

いいえ

60000

customHeader

RESTful API に渡されるヘッダー情報。

いいえ

なし

parameters

RESTful API に渡されるパラメーター情報。

  • GET リクエストの場合は、abc=1&def=1 形式でパラメーターを入力します。

  • POST リクエストの場合は、JSON 形式でパラメーターを入力します。

いいえ

なし

dirtyData

列の指定された JSON パスでデータが見つからない状況を処理するメソッド。

  • dirty: レコードの解析時に列が見つからない場合、レコードはダーティデータとしてマークされます。

  • null: レコードの解析時に列が見つからない場合、列の値は null に設定されます。

はい

dirty

requestTimes

RESTful アドレスからデータをリクエストする回数。

  • single: 1 回のリクエストのみを送信します。

  • multiple: 複数のリクエストを送信します。

はい

single

requestParam

requestTimes を multiple に設定した場合、pageNumber などのループ用のパラメーターを指定する必要があります。プラグインは、指定された startIndex、endIndex、および step パラメーターに基づいて、ループ内で pageNumber パラメーターを RESTful API に渡し、複数のリクエストを送信します。

いいえ

なし

startIndex

ループリクエストの開始インデックス。開始インデックスはループに含まれます。

いいえ

なし

endIndex

ループリクエストの終了インデックス。終了インデックスはループに含まれます。

いいえ

なし

step

ループリクエストのステップサイズ。

いいえ

なし

authType

認証方式。有効な値:

  • Basic Authentication: 基本認証

    データソースがユーザー名とパスワードベースの認証をサポートしている場合、基本認証を選択し、認証に使用できるユーザー名とパスワードを構成できます。データ統合中、ユーザー名とパスワードは認証のために RESTful API URL に転送されます。認証が成功した後にのみデータソースが接続されます。

  • Token Authentication: トークンベースの認証

    データソースがトークンベースの認証をサポートしている場合、トークン認証を選択し、認証に使用できる固定トークン値を構成できます。データ統合中、トークンは {"Authorization":"Bearer TokenXXXXXX"} などのリクエストヘッダーに含まれ、認証のために RESTful API URL に転送されます。認証が成功した後にのみデータソースが接続されます。

    説明

    カスタム認証方式を使用する場合は、トークン認証を選択し、Token フィールドに固定トークン値を構成できます。トークン値は暗号化された後に認証に使用できます。

いいえ

なし

authUsername/authPassword

基本認証のユーザー名とパスワード。

いいえ

なし

authToken

トークン認証のトークン。

いいえ

なし

accessKey/accessSecret

Aliyun API 署名認証のアカウント情報。

いいえ

なし

Writer スクリプトデモ

{
    "type":"job",
    "version":"2.0",
    "steps":[
        {
            "stepType":"stream",
            "parameter":{

            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"restapi",
            "parameter":{
                "url":"http://127.0.0.1:5000/writer1",
                "dataMode":"oneData",
                "responseType":"json",
                "column":[
                    {
                        "type":"long", // 列データを a.b パスに配置します。
                        "name":"a.b"
                    },
                    {
                        "type":"string", // 列データを a.c パスに配置します。
                        "name":"a.c"
                    }
                ],
                "method":"post",
                "defaultHeader":{
                    "X-Custom-Header":"test header"
                },
                "customHeader":{
                    "X-Custom-Header2":"test header2"
                },
                "parameters":"abc=1&def=1",
                "batchSize":256
            },
            "name":"restapiwriter",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0" // エラーレコードの数。
        },
        "speed":{
            "throttle":true,// throttle が false に設定されている場合、mbps パラメーターは有効にならず、データレートは制限されません。throttle が true に設定されている場合、データレートは制限されます。
            "concurrent":1, // ジョブの同時実行数。
            "mbps":"12"// 最大データレート。1 mbps は 1 MB/s に相当します。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Writer スクリプトパラメーター

パラメーター

説明

必須

デフォルト値

url

RESTful API のアドレス。

はい

なし

dataMode

RESTful リクエストで渡される JSON データのフォーマット。

  • oneData: リクエストごとに 1 つのレコードを渡します。リクエストの数はレコードの数と同じです。

  • multiData: リクエストごとにレコードのバッチを渡します。リクエストの数は、リーダー側で分割されたタスクの数によって決まります。

はい

なし

column

生成された JSON データに対応するフィールドパスのリスト。type パラメーターはソースデータのタイプを指定し、name パラメーターは現在の列のデータが配置される JSON パスを指定します。列フィールドを指定できます。例:

"column":[{"type":"long","name":"a.b" // 列データを a.b パスに配置します。}, {"type":"string","name":"a.c" // 列データを a.c パスに配置します。}]

説明

各列に type と name パラメーターを指定する必要があります。

はい

なし

dataPath

データ結果が配置される JSON オブジェクトのパス。

いいえ

なし

method

リクエストメソッド。有効な値: post および put。

はい

なし

customHeader

RESTful API に渡されるヘッダー情報。

いいえ

なし

authType

認証方式。

  • Basic Authentication: 基本認証

    データソースがユーザー名とパスワードベースの認証をサポートしている場合、基本認証を選択し、認証に使用できるユーザー名とパスワードを構成できます。データ統合中、ユーザー名とパスワードは認証のために RESTful API URL に転送されます。認証が成功した後にのみデータソースが接続されます。

  • Token Authentication: トークンベースの認証

    データソースがトークンベースの認証をサポートしている場合、トークン認証を選択し、認証に使用できる固定トークン値を構成できます。データ統合中、トークンは {"Authorization":"Bearer TokenXXXXXX"} などのリクエストヘッダーに含まれ、認証のために RESTful API URL に転送されます。認証が成功した後にのみデータソースが接続されます。

    説明

    カスタム認証方式を使用する場合は、トークン認証を選択し、Token フィールドに固定トークン値を構成できます。トークン値は暗号化された後に認証に使用できます。

いいえ

なし

authUsername/authPassword

基本認証のユーザー名とパスワード。

いいえ

なし

authToken

トークン認証のトークン。

いいえ

なし

accessKey/accessSecret

Aliyun API 署名認証のアカウント情報。

いいえ

なし

batchSize

dataMode が multiData に設定されている場合の、単一リクエスト内のレコードの最大数。

はい

512