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

DataWorks:データソースからの API の作成 (API Gateway)

最終更新日:Apr 23, 2026

DataService Studio では、コードレス UI またはコードエディタを使用して、既存のデータソースからデータ API を作成できます。このトピックでは、API Gateway を使用して API を作成する手順を説明します。API Gateway の有効化、ビジネスプロセスの作成、API の生成と設定方法について学習します。

説明

クラウドネイティブ API Gateway については、「API の作成、公開、呼び出し (クラウドネイティブ API Gateway)」をご参照ください。

前提条件

  • Workspace Management > Data source management ページでデータソースを設定済みであること。詳細については、「データソースの設定」をご参照ください。

  • データサービスにはリソースグループが必要です。本番環境では、サーバーレスリソースグループの使用を推奨します。詳細については、「リソースグループとネットワーク接続」をご参照ください。

DataService Studio

DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、[データ分析・サービス] > [DataService Studio] を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[DataService Studio へ移動] をクリックします。

ステップ 1:API Gateway の設定

ビジネスプロセスを作成する前に、API Gateway コンソールで以下のタスクを完了させます。

  1. API Gateway コンソールにログインし、API Gateway を有効化します。

  2. API Gateway コンソールで、API グループを作成します。API グループは、特定の機能やシナリオのための API のコレクションであり、API Gateway における API の基本的な管理単位です。

    重要

    API Gateway のリージョンは、DataWorks ワークスペースのリージョンと一致している必要があります。

ステップ 2:ビジネスプロセスの作成

データサービスでは、ビジネスプロセスを使用して、ビジネスドメインごとに API 開発を整理します。各ビジネスプロセスは、API グループにバインドする必要があります。API を生成する前に、ビジネスプロセスを作成する必要があります。

  1. サービス開発 ページで、image.png アイコンをクリックし、Create Workflowを選択します。

  2. Create Workflow ダイアログボックスで、パラメーターを設定します。

    パラメーター

    説明

    Workflow Name

    名前はワークスペース内で一意である必要があります。長さは 4~50 文字で、文字または漢字で始まり、漢字、文字、数字、アンダースコア (_) を含めることができます。

    API grouping

    ステップ 1 で作成した API グループを選択します。新しいグループを作成するには、API Gateway コンソールに移動します。

    重要

    ビジネスプロセスを API グループにバインドした後、グループを変更することはできません。グループは慎重に選択してください。

    Business Description

    ビジネスプロセスの説明を入力します。説明は 180 文字を超えることはできません。

  3. Determine をクリックします。ビジネスプロセスが作成されると、Workflow リストで表示できます。

ステップ 3:API モードの選択

データサービスでは、ウィザードモードまたはスクリプトモードで API を作成できます。どちらのモードも基本的な API 設定プロセスは同じですが、クエリロジックの構築方法が異なります。

モードの比較

機能カテゴリ

機能

ウィザードモード

スクリプトモード

クエリオブジェクト

単一データソースからの単一データテーブルのクエリ

サポート

サポート

単一データソース内の複数テーブルの JOIN

非サポート

サポート

クエリ条件

等価、範囲、あいまい一致クエリ

演算子の選択によりサポート

カスタム SQL の定義によりサポート

動的 MyBatis 条件 (オプションパラメーターなど)

非サポート

アドバンスト SQL モードでサポート

クエリ結果

生のフィールド値の返却と結果のページネーション

サポート

サポート

数学演算と集計関数

非サポート

サポート

モードの選択

  • ウィザードモードの使用:等価、あいまい一致、範囲フィルタリングなど、単一のデータテーブルに対する単純なクエリに使用します。このモードは、API 設定のための視覚的なノーコードインターフェイスを提供します。

  • スクリプトモードの使用:複数テーブルの JOIN、ネストされたサブクエリ、集約、またはオプションパラメーターを持つ動的条件など、高度なクエリに使用します。

説明

API をウィザードモードからスクリプトモードに変換することはできますが、この変更を元に戻すことはできません。詳細については、「付録:ウィザードモードからスクリプトモードへの変換」をご参照ください。

ステップ 4:API の生成

  1. サービス開発 ページで、image.png アイコンにカーソルを合わせ、Create API > Generate API をクリックします。

    または、関連するビジネスプロセスを開き、API を右クリックし、Create API > Generate API を選択します。

  2. Generate API ダイアログボックスで、パラメーターを設定します。

    パラメーター

    説明

    API Mode

    Wizard Mode または Code Editor を選択します。スクリプトモードを選択した場合は、SQL Mode (Basic SQL または Advanced SQL) も選択する必要があります。

    • Basic SQL:基本的な SQL 構文を使用してクエリロジックを記述します。

    • Advanced SQL:MyBatis タグをサポートする SQL 構文を使用してクエリロジックを記述します。サポートされているタグには、if、choose、when、otherwise、trim、foreach、where があります。

    API Name

    名前には漢字、文字、数字、アンダースコア (_) を含めることができます。文字または漢字で始まり、長さは 4~50 文字である必要があります。

    APIPath

    API のエンドポイントパスです。これは、/user のようなサービスホストに対するリクエストパスです。パスには文字、数字、アンダースコア (_)、ハイフン (-) を含めることができます。スラッシュ (/) で始まり、最大 200 文字の長さである必要があります。

    契約

    HTTPHTTPS をサポートします。

    HTTPS 経由で API を呼び出すには、API Gateway に公開し、カスタムドメインをバインドし、API Gateway コンソールで SSL 証明書をアップロードする必要があります。詳細については、「HTTPS のサポート」をご参照ください。

    Request Method

    GETPOST をサポートします。

    説明

    GET を選択した場合、リクエストパラメーターの位置QUERY である必要があります。POST を選択した場合、この位置は QUERY または Body にすることができます。

    Response Type

    JSON のみがサポートされています。

    目に見える範囲

    • Work space:API は現在のワークスペースのすべてのメンバーに表示されます。

    • Private:API はその所有者にのみ表示されます。他のユーザーへの権限付与は現在サポートされていません。

    Tag

    リストから最大 5 つのタグを選択します。各タグは最大 20 文字です。詳細については、「API タグの作成と管理」をご参照ください。

    Description

    API の簡単な説明を入力します。説明は 2,000 文字を超えることはできません。

    Location

    API を保存する既存のビジネスプロセスを選択します。デフォルトのパス構造は「ビジネスプロセス/ビジネスプロセス名/API」です。

  3. Determine をクリックして API 編集ページを開きます。

ステップ 5:API の設定

1. データソースとテーブルの選択

API をダブルクリックして編集ページを開きます。Table エリアで、Data Source TypeData Source NameData Source Environment などのパラメーターを設定します。設定パラメーターはデータソースタイプによって異なります。具体的なパラメーターについては UI をご参照ください。

説明
  • まず、Workspace Management > Data source management でデータソースを設定する必要があります。データテーブルのドロップダウンリストは、テーブル名での検索をサポートしています。

  • スクリプトモードでは、まずデータソースを選択する必要があります。同じデータソース内でのみ複数テーブルの JOIN クエリを実行できます。

  • 標準モードのワークスペースでは、Data Source Environment パラメーターを使用して、開発環境または本番環境のいずれかのデータソースにアクセスできます。詳細については、「ワークスペースモードの違い」をご参照ください。

  • MaxCompute データソースの場合、DataWorks DataService の Acceleration Service または MaxCompute の MCQA 機能を使用してクエリを高速化できます。アクセラレーションサービスを使用するには、まずアクセラレーション項目を作成する必要があります。詳細については、「アクセラレーションサービス」をご参照ください。

2. クエリロジックの定義

クエリロジックは、ウィザードモードとスクリプトモードで定義方法が異なります。

ウィザードモード:パラメーターの選択

データテーブルを選択すると、テーブルのすべてのフィールドが自動的に Select Parameters エリアに表示されます。必要なフィールドの Set as Req ParamSet as Resp Param チェックボックスを選択します。

クエリ結果をソートするには、フィールドの横にある Sort ボタンをクリックしてソートリストに追加します。リストには複数のフィールドを追加できます。シーケンス番号が優先度を決定し、数値が小さいほど優先度が高くなります。Move UpMove Down ボタンを使用して優先度を調整できます。各フィールドについて、Ascending order または Descending order を選択できます。

スクリプトモード:クエリ SQL の記述

Edit Query SQL エリアに、クエリ SQL ステートメントを入力します。

基本 SQL モード${paramName} を使用してリクエストパラメーターをマークします。SELECT の後のフィールドはレスポンスパラメーターであり、WHERE 句の ${param} はリクエストパラメーターです。

SQL ステートメントを記述する際は、以下のルールに従ってください:

  • 同じデータソース内での単一テーブルクエリ、複数テーブルの JOIN クエリ、ネストされたクエリがサポートされています。

  • 複数の SQL ステートメント、コメント、および INSERTUPDATEDELETE などの非 SELECT 構文はサポートされていません。

  • SELECT * はサポートされていません。クエリする列を明示的に指定する必要があります。

  • 列名にテーブルプレフィックスが含まれる場合 (例:t.name)、エイリアスを割り当てる必要があります (例:t.name as name)。集計関数にもエイリアスを割り当てる必要があります。

  • ${param} を引用符で囲むことはサポートされていません。文字列を連結するには、concat('abc', ${xyz}, '123') を使用します。

  • 基本 SQL モードでは、パラメーターをオプションとして設定することはサポートされていません。

アドバンスト SQL モードは、MyBatis タグ構文 (例:ifchoosewhenotherwisetrimforeachwhere) をサポートしており、これにより、null 値の検証、複数値の反復、動的テーブルクエリ、動的ソートなどの複雑なクエリロジックを柔軟に実装できます。一般的なシナリオのコードサンプルについては、「付録:アドバンスト SQL (MyBatis 構文) の例」をご参照ください。

アドバンスト SQL モードで特殊文字を使用する場合は、エスケープする必要があります:

特殊文字

エスケープ文字

説明

>

>

より大きい

>=

>=

以上

<

&lt;

より小さい

<=

&lt;=

以下

&

&amp;

And

'

&apos;

シングルクォーテーション

"

&quot;

ダブルクォーテーション

3. リクエストパラメーターの設定

API 編集ページの右側のペインで Request Parameters をクリックして、パラメーターを設定します。

説明
  • 結果をプレビューする前に、API パラメーターのサンプル値、デフォルト値、説明を設定してください。

  • 最高のパフォーマンスを得るために、インデックス付きフィールドをリクエストパラメーターとして使用してください。

  • アドバンスト SQL モードでは、システムはパラメーターを自動的に解析できません。SQL スクリプトに基づいて、すべてのリクエストパラメーターをリストに手動で追加する必要があります。

  • ウィザードモードでは、2 つのパラメーターを使用してフィールドの値の範囲を作成することはサポートされていません。この機能を使用するには、スクリプトモードを使用してください。

パラメーター

説明

Parameter Name

名前には文字、数字、アンダースコア (_)、ハイフン (-) を含めることができます。文字で始まり、最大 64 文字の長さである必要があります。

Bound Field

このパラメーターはウィザードモードでのみ表示され、デフォルトで読み取り専用です。選択したデータテーブルフィールドにバインドされます。バインディングを変更するには、スクリプトモードを使用します。

Parameter Type

サポートされているタイプ:STRING、INT、LONG、FLOAT、DOUBLE、BOOLEAN。

Parameter Position

QUERY または BODY。BODY を選択した場合は、Content-Type を設定する必要があります。サポートされているフォーマットは JSON、XML、FORM です。

Operator

このパラメーターはウィザードモードでのみ表示されます。パラメーターの比較演算子を定義します。サポートされている演算子には、=LIKEINNOT INNOT LIKE!=><>=<= があります。

説明

データソースタイプが Table Store の場合、= 演算子のみがサポートされます。

Required

API 呼び出しにパラメーターが必須かどうかを指定します。

Sample Value

リクエストパラメーターのサンプル値。

Default Value

リクエストパラメーターのデフォルト値。

Description

リクエストパラメーターの簡単な説明。

4. レスポンスパラメーターとページネーションの設定

API 編集ページの右側のペインで Response Parameters をクリックして、パラメーター名、パラメータータイプ、サンプル値、説明を設定します。アドバンスト SQL モードでは、SQL スクリプトに基づいて、すべてのレスポンスパラメーターを手動で追加する必要があります。

Advanced Settings エリアで、Pagination for Return Results を有効にするかどうかを指定します:

  • 無効:API はデフォルトで最大 2,000 レコードを返します。

  • 有効:Resource Group for DataService Studio ページで、リソースグループタイプに基づいて 1 ページあたりの最大レコード数を設定できます。

ページネーションが有効な場合、システムは自動的に以下の共通パラメーターを追加します:

  • 共通リクエストパラメーター:returnTotalNum (レコード総数を返すかどうか)、pageNum (現在のページ番号)、pageSize (1 ページあたりのレコード数)。

  • 共通レスポンスパラメーター:pageNumpageSizetotalNum (レコード総数)。

説明
  • API にリクエストパラメーターがない場合は、レスポンスのページネーションを有効にする必要があります。

  • スクリプトモードで、SQL ステートメントに limit 句が含まれている場合、ページネーションが有効になっていると limit 句は効果がありません。ページネーションの設定が優先されます。

5. フィルターの設定 (オプション)

リクエストパラメーターを前処理したり、クエリ結果を後処理したりするには、右側のナビゲーションペインで Filter をクリックします。Use Pre-filter または Use Post-filter チェックボックスを選択します。次に、Function Type を選択し、関数を選択します。複数の関数を追加でき、追加された順に実行されます。フィルターの作成と使用方法の詳細については、「Aviator 関数の作成」および「Python 関数の作成」をご参照ください。

説明
  • Python 関数をフィルターとして使用するには、まず DataWorks Professional Edition 以上を有効にし、パブリックサービスリソースグループを使用する必要があります。

  • Aviator 関数をフィルターとして使用する場合、DataWorks のエディションに制限はありませんが、専用サービスリソースグループを使用する必要があります。

  • フィルターのドロップダウンリストに関数が表示されない場合は、関数が公開されているかどうかを確認してください。詳細については、「関数の公開」をご参照ください。

6. サービスリソースグループの設定

右側のナビゲーションペインで、Resource Group for DataService Studio をクリックして、API のリソースグループタイプを設定します。

Exclusive Resource Group for DataService Studio または Shared Resource Group for DataService Studio を使用できます。専用サービスリソースグループの場合、名前でターゲットリソースグループを選択できます。パブリックサービスリソースグループは、DataWorks によって自動的に維持されます。

説明
  • パブリックサービスリソースグループはテスト目的でのみ使用し、本番環境では使用しないことを推奨します。

  • ターゲットリソースグループがリストにない場合は、[リソースグループ] ページに移動して、リソースグループをワークスペースに関連付けます。

環境構成 エリアでは、メモリタイムアウトMaximum Number of Data Records for a Single Request を設定できます:

  • タイムアウト:共有 API Gateway インスタンスの場合は 30,000 ms、専用 API Gateway インスタンスを使用する専用サービスリソースグループの場合は 90,000 ms を超えることはできません。

    説明

    API の応答時間は SQL の実行時間に依存します。タイムアウト値を十分に高く設定して、タイムアウトによるリクエストの失敗を防ぎます。

  • 1 ページあたりの最大レコード数:パブリックサービスリソースグループの場合は最大 2,000、専用サービスリソースグループの場合は最大 10,000 です。API が返すことができる結果の総数に制限はありません。

ステップ 6:保存と送信

ツールバーの 保存 アイコンをクリックして API を保存します。選択したリソースグループは、テスト中に有効になります。

次のステップ

  • テストと公開

    • API を設定した後、テストできます。詳細については、「API のテスト」をご参照ください。

    • テストが成功したら、右上隅の Submission をクリックします。

    • API 編集ページで、右側のナビゲーションペインの Version をクリックします。公開したいバージョンを見つけ、Request to Publish をクリックします。申請ページで、申請タイプはデフォルトで Publish API in DataService Studio になります。Application Reason を入力し、Requested Permissions をクリックしてリクエストを送信します。

      説明

      DataWorks 承認センターでワークスペースに承認ワークフローが設定されている場合、API を公開する前にリクエストが承認される必要があります。詳細については、「承認センターの概要」をご参照ください。

    • API が公開されると、DataService Studio のリソースグループの設定がすべての API 呼び出しに適用されます。

  • API の管理サービス開発 ページで、ディレクトリツリーから API をクローンまたは削除して管理できます。Service Management ページでは、API リストを展開して公開済み API の詳細を表示できます。詳細については、「API の表示、削除、移動、クローン、バッチ操作、およびコードによる検索」をご参照ください。

付録:ウィザードモードからスクリプトモードへの変換

API をウィザードモードからスクリプトモードに変換できます:

  1. サービス開発 ページで、ターゲット API を含む Workflow > API を展開します。

  2. API 名をダブルクリックして編集ページを開きます。

  3. ツールバーで、转换脚本 アイコンをクリックします。

  4. Prompt ダイアログボックスで、Determine をクリックします。

    警告
    • API はウィザードモードからスクリプトモードにのみ変換できます。

    • この操作は元に戻せません。

付録:アドバンスト SQL (MyBatis) の例

これらの例は、スクリプトモードでアドバンスト SQL を使用して複雑なクエリを構築する方法を示しています。テーブル名、フィールド、クエリ条件はご自身のものに置き換えてください。

例 1:ソート順の制御

var の値によってソート順が決まります。

select col01,col02
from table_name
<choose>
    <when test='var == 1'>
    order by col01
    </when>
    <when test='var == 2'>
    order by col02
    </when>
    <when test='var == 3'>
    order by col01,col02
    </when>
    <when test='var == 4'>
    order by col02,col01
    </when>
</choose>

リクエストパラメーター:var (タイプ:INT、必須)。レスポンスパラメーター:col01col02

例 2:異なるテーブルのクエリ

var の値によってクエリするテーブルが決まります。

select col01
from
<choose>
 <when test='var == 1'>
 table_name01
 </when>
 <when test='var == 2'>
 table_name02
 </when>
</choose>

例 3:動的な WHERE 句

クエリ条件は、list コレクションが空かどうかに基づいて動的に生成されます。list が null でない場合、area フィールドの値を含むクエリ条件が生成されます。

SELECT area_id, area, amount
FROM table_name
<where>
	<if test='list!=null'>
	area in
		<foreach collection="list" open="(" close=")" separator="," item="area">
		#{area}
		</foreach>
	</if>
</where>

リクエストパラメーター:list (タイプ:STRING_LIST、必須、例:Beijing,Hangzhou)。レスポンスパラメーター:area_idareaamount

付録:ベストプラクティス — オプションパラメーター

多くのビジネスシナリオでは、一部のリクエストパラメーターをオプションにする必要があります。これにより、呼び出し元はパラメーターに値を渡すかどうかを決定できます。値が渡されない場合、そのパラメーターはクエリ条件から除外されます。このセクションでは、ods_user_info_d テーブルを例として、uid を必須パラメーター、gender をオプションパラメーターとして設定する方法を示します。

パラメーター

タイプ

説明

uid

INT

ユーザー ID

gender

STRING

性別

age_range

STRING

年齢範囲

zodiac

STRING

星座

ウィザードモードでのオプションパラメーター

ウィザードモードでオプションのパラメーターを実装するのは簡単です。Select Parameters エリアで uidgender をリクエストパラメーターとして選択した後、右側の Request Parameters パネルに移動し、gender パラメーターの Required チェックボックスの選択を解除します。

  • 選択済み:API を呼び出す際にパラメーターの値を指定する必要があります。そうしないと、パラメーター検証例外がスローされます。

  • クリア:パラメーターに値を渡すかどうかを選択できます。値を渡さない場合、パラメーターはクエリ条件として含まれません。

呼び出し例:

  • シナリオ 1:uidgender の両方に値が渡されます。システムは次のクエリを実行します:

    SELECT uid, gender, age_range, zodiac
    FROM ods_user_info_d
    WHERE uid = 0016359810821
    AND gender = 'Female';
  • シナリオ 2:uid には値が渡されますが、gender には値が渡されません。システムは次のクエリを実行します:

    SELECT uid, gender, age_range, zodiac
    FROM ods_user_info_d
    WHERE uid = 0016359810821;

スクリプトモードでのオプションパラメーター

重要

基本 SQL では、真のオプションパラメーターロジックを実装できませんRequired チェックボックスをオフにしても、パラメーターが省略された場合、システムは parameter = null でクエリを実行します。これは通常、条件を無視するのではなく、空の結果セットを返します。オプションパラメーターを実装するには、アドバンスト SQL モードを使用する必要があります。

アドバンスト SQL モードでは、MyBatis の <if> タグを使用して条件付きロジックを実装します:

SELECT uid, gender, age_range, zodiac
FROM ods_user_info_d
<where>
    <if test='gender!=null'>
    gender = ${gender}
    </if>
    and uid = ${uid}
</where>
  • <where> タグは、WHERE キーワードを自動的に処理し、冗長な AND または OR プレフィックスを削除します。

  • <if test='gender!=null'> タグは、gender パラメーターに null でない値を渡した場合にのみ、条件をクエリに追加します。

  • SQL ステートメントを設定した後、右側のRequest Parameters パネルで uid パラメーターと gender パラメーターを手動で追加し、gender パラメーターのRequired チェックボックスの選択を解除します。

動作はウィザードモードと同じです:値が渡されると gender 条件が適用され、省略されると無視されます。

オプションパラメーターの設定

メソッド

実装

複雑さ

ユースケース

ウィザードモード

「必須」チェックボックスをオフにする。

単純な単一テーブルクエリ

スクリプトモード (基本 SQL)

非サポート

スクリプトモード (アドバンスト SQL)

条件を <if test='param!=null'> タグで囲む。

複数テーブルの JOIN と複雑なクエリ