DataService Studio では、ウィザードモードまたはスクリプトモードのいずれかで API を作成できます。スクリプトモードはウィザードモードよりも柔軟性が高く、複数テーブルの結合、高度なクエリ、集計関数などの複雑な操作を行うためのカスタム SQL クエリを記述できます。
前提条件
-
API を設定する前に、 ページでデータソースを設定する必要があります。詳細については、「データソースの設定」をご参照ください。
-
DataService Studio のリソースグループを準備します。本番環境では、サーバーレスのリソースグループを使用することを推奨します。詳細については、「リソースグループとネットワーク接続」をご参照ください。
DataService Studio
DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[DataService Studio へ移動] をクリックします。
API の生成
-
サービス開発 ページで、
アイコンにカーソルを合わせ、 をクリックします。または、ビジネスプロセスを開き、API を右クリックして、 を選択します。
-
Generate API ダイアログボックスで、パラメーターを設定します。
パラメーター
説明
[API Mode]
オプションは Wizard Mode と Code Editor です。Code Editor を選択します。
[SQL Mode]
オプションは Basic SQL と Advanced SQL です。
-
[Basic SQL]:基本的な SQL 構文を使用してクエリロジックを記述します。この構文は、以前のバージョンの SQL と互換性があります。
-
[Advanced SQL]:MyBatis タグをサポートする SQL 構文を使用してクエリロジックを記述します。サポートされているタグは、
if、choose、when、otherwise、trim、foreach、whereです。
[API Name]
名前は 4~50 文字で、漢字、英字、数字、アンダースコア (_) のみを使用でき、漢字または英字で始まる必要があります。
[APIPath]
API が格納されているパス。例: /user。
[契約]
サポートされているプロトコルは HTTP と HTTPS です。
HTTPS 経由で API を呼び出すには、API Gateway に公開してから、API Gateway コンソールでカスタムドメイン名をバインドし、SSL 証明書をアップロードします。詳細については、「HTTPS の有効化」をご参照ください。
[Request Method]
サポートされているメソッドは GET と POST です。
説明Request Method が [GET] の場合、[パラメーターの位置] は [QUERY] のみです。[リクエストメソッド] が [POST] の場合、[パラメーターの位置] は Body または Body になります。
[Response Type]
[JSON] 形式のみがサポートされています。
[目に見える範囲]
オプションは Work space と Private です。
-
[Work space]:API はワークスペースのすべてのメンバーに表示されます。
-
[Private]:API はその所有者にのみ表示され、所有者は他のメンバーに権限を付与できません。
説明表示範囲をプライベートに設定した場合、ディレクトリツリーには自分だけが API を表示できます。
[Tag]
Tag リストからタグを選択します。詳細については、「API タグの作成と管理」をご参照ください。
説明タグ名には、漢字、英字、数字、アンダースコア (_) を含めることができます。最大 5 つのタグを追加でき、各タグの長さは最大 20 文字です。
[Description]
API の簡単な説明を入力します。説明は 2,000 文字までです。
[Location]
API が格納されているディレクトリ。
-
-
Determine をクリックします。
API の設定
1. テーブルの選択
API をダブルクリックして編集ページを開きます。Table セクションで、Data Source Type、Data Source Name、Data Source Environment などのパラメーターを設定します。
必要なパラメーターは、データソースのタイプによって異なります。詳細については、UI をご参照ください。
-
でデータソースを設定する必要があります。データテーブルのドロップダウンリストで、名前でテーブルを検索できます。
-
データソースを選択する必要があります。結合クエリは、同じデータソース内のテーブルでのみサポートされます。
-
標準モードのワークスペースの場合、Data Source Environment パラメーターで開発用または本番環境のデータソースを選択できます。詳細については、「基本モードと標準モードのワークスペースの違い」をご参照ください。
-
MaxCompute データソースのテーブルでは、DataService Studio の Acceleration Service または MaxCompute の MCQA サービスを使用してクエリを高速化できます。Acceleration Service を使用するには、まずアクセラレーションアイテムを作成する必要があります。詳細については、「アクセラレーションサービス」をご参照ください。
2. SQL クエリの記述
Edit Query SQL セクションで、SQL クエリ ステートメントを入力します。
-
Basic SQL モードを選択した場合、基本的な SQL 構文のみがサポートされます。
SELECT name, addr AS address, SUM(num) as total_num FROM table_name WHERE user_id =${uid}説明SELECT 句のフィールドは API のレスポンスパラメーターを定義します。WHERE 句のパラメーターは API のリクエストパラメーターを定義します。${} 形式でリクエストパラメーターを識別します。
SQL ステートメントを記述する際は、次のルールに従ってください:
-
同じデータソース内での単一テーブルクエリ、複数テーブル結合クエリ、およびネストされたクエリがサポートされています。
-
以下はサポートされていません:
-
複数の SQL ステートメント。
-
コメント。
-
INSERT、UPDATE、DELETE などの非 SELECT ステートメント。
-
SELECT *ステートメント。クエリする列を明示的に指定する必要があります。 -
${param} 変数を引用符で囲まないでください。たとえば、
'${id}'や'abc${xyz}123'はサポートされていません。これを行うには、concat('abc', ${xyz}, '123')関数を使用します。 -
オプションのパラメーター。
-
-
SELECT 句の列名がテーブル名 (例: t.name) で修飾されている場合、レスポンスパラメーターにエイリアス (例: t.name as name) を指定する必要があります。
-
集計関数 (min、max、sum、count など) を使用する場合、レスポンスパラメーターのエイリアスを指定する必要があります。例:
sum(num) as total_num。 -
SQL ステートメント内の ${param} 変数は、文字列内のものも含め、リクエストパラメーターに置き換えられます。${param} 変数の前にバックスラッシュ (\) がある場合、それはリテラル文字列として扱われます。
-
-
Advanced SQL モードを選択した場合、MyBatis タグがサポートされます。
SELECT id, name, create_name FROM t_parameter <where> <if test="'list!=null'"> id in ( <foreach collection="list" open="(" close=")" separator="," item="id_num"> ${id_num} </foreach> ) </if> </where>高度な SQL でサポートされている MyBatis タグは、if、choose、when、otherwise、trim、foreach、および where です。これらのタグを使用して、null 値のチェック、複数値の走査、動的テーブルクエリ、動的ソート、集計などの複雑なクエリロジックを実装できます。一般的なシナリオのコードサンプルについては、「高度な SQL (MyBatis 構文) の例」をご参照ください。
MyBatis タグで特殊文字を使用する場合は、これらの文字をエスケープする必要があります。次の表に、一般的なエスケープ文字を示します。
特殊文字
エスケープ文字
説明
>
>
より大きい
>=
>=
以上
<
<
より小さい
<=
<=
以下
&
&
AND
'
'
単一引用符
"
"
二重引用符
3. リクエストパラメーターの設定
API 編集ページの右側のナビゲーションペインで、Request Parameters をクリックし、パラメーターを設定します。
Advanced SQL モードを使用する場合、SQL スクリプトからすべてのリクエストパラメーターを手動でリストに追加します。これにより、API ドキュメントに、必要なパラメーターが正確に反映されます。
-
結果をプレビューする前に、API パラメーターのサンプル値、デフォルト値、および説明を設定してください。
-
パフォーマンスを向上させるために、インデックス付きフィールドをリクエストパラメーターとして設定してください。
|
パラメーター |
説明 |
|
[Parameter Name] |
リクエストパラメーターの名前。名前の長さは最大 64 文字で、英字で始まり、英字、数字、アンダースコア (_)、ハイフン (-) を含めることができます。 |
|
[Parameter Type] |
サポートされているデータ型は、STRING、INT、LONG、FLOAT、[Double]、[Boolean]です。 |
|
[Parameter Position] |
オプションは QUERY と [Body] です。 説明
1 つ以上のパラメーターの場所として Body を選択した場合、リクエストボディでパラメーターを渡す形式を定義するために、Body のパラメーターの [Content-Type] も設定する必要があります。 サポートされている Content-Type の値は次のとおりです:
|
|
[Required] |
リクエストパラメーターが必須かどうかを指定します。 |
|
[Sample Value] |
リクエストパラメーターのサンプル値。 |
|
[Default Value] |
リクエストパラメーターのデフォルト値。 |
|
[Description] |
リクエストパラメーターの簡単な説明。 |
4. レスポンスパラメーターの設定
API 編集ページの右側のナビゲーションペインで、Response Parameters をクリックし、パラメーターを設定します。
-
レスポンスパラメーターを設定します。
Advanced SQL モードを使用する場合、SQL スクリプトからすべてのレスポンスパラメーターを手動でリストに追加します。これにより、API ドキュメントに、返されるデータが正確に反映されます。
パラメーター
説明
[Parameter Name]
レスポンスパラメーターの名前。名前の長さは最大 64 文字で、英字で始まり、英字、数字、アンダースコア (_)、ハイフン (-) を含めることができます。
[Parameter Type]
サポートされているデータ型は、STRING、INT、LONG、FLOAT、[Double]、[Boolean]です。
[Sample Value]
レスポンスパラメーターのサンプル値。
[Description]
レスポンスパラメーターの簡単な説明。
-
Advanced Settings セクションで、Pagination for Return Results を有効にするかどうかを指定します。
-
Pagination for Return Results を有効にしない場合、API はデフォルトで最大 2,000 レコードを返します。
-
API が 2,000 件以上の結果を返す可能性がある場合は、Pagination for Return Results を有効にします。有効にした後、右側のナビゲーションペインの Resource Group for DataService Studio ページに移動して、リソースグループのタイプに基づいて 1 ページあたりの最大エントリ数を設定できます。
説明API 編集ページの Response Parameters タブで Pagination for Return Results が有効になっており、Edit Query SQL セクションで
LIMIT句を含む SQL ステートメントを使用する場合、LIMIT句は無視され、返される結果の数は Pagination for Return Results の設定によって決まります。ページネーションを有効にすると、次の共通パラメーターが自動的に追加されます:
-
共通リクエストパラメーター:
-
returnTotalNum: 1 回のリクエストでデータレコードの総数を返すかどうかを指定します。
-
pageNum: 現在のページ番号。
-
pageSize: 1 ページあたりのエントリ数。
-
-
共通レスポンスパラメーター:
-
pageNum: 現在のページ番号。
-
pageSize: 1 ページあたりのエントリ数。
-
totalNum: レコードの総数。
-
説明API にリクエストパラメーターがない場合もありますが、その場合は Pagination for Return Results を有効にする必要があります。
-
5. フィルターの設定
リクエストパラメーターを前処理したり、クエリ結果を後処理したりする必要がある場合は、API 編集ページの右側のナビゲーションペインで Filter をクリックします。必要に応じて Use Pre-filter または Use Post-filter を選択します。Function Type を選択し、プレフィルターまたはポストフィルターのドロップダウンリストから 1 つ以上の関数を選択します。関数は追加された順に実行されます。設定が完了したら、Preview Responses Returned by API Operation をクリックして、結果が期待どおりかどうかを確認できます。フィルターの作成と使用方法の詳細については、「Aviator 関数の作成」および「Python 関数の作成」をご参照ください。
-
Python 関数をフィルターとして使用するには、DataWorks Professional Edition 以上と DataService Studio の共有リソースグループが必要です。
-
Aviator 関数をフィルターとして使用する場合、特定の DataWorks エディションは必要ありませんが、DataService Studio 専用リソースグループが必要です。
-
対象の関数がフィルターのドロップダウンリストに見つからない場合は、関数が公開されているかどうかを確認するか、新しい関数を作成して公開してみてください。詳細については、「関数の公開」をご参照ください。
6. サービスリソースグループの設定
-
API 編集ページの右側のナビゲーションペインで、Resource Group for DataService Studio をクリックします。リソースグループタイプ セクションで、API を呼び出すときに使用するリソースグループのタイプを設定します。
Exclusive Resource Group for DataService Studio または Shared Resource Group for DataService Studio を選択できます。Exclusive Resource Group for DataService Studio の場合、リストから対象のリソースグループ名を選択できます。Shared Resource Group for DataService Studio は DataWorks によって自動的に管理され、名前で選択することはできません。
説明-
対象のリソースグループ名がリストにない場合は、[リソースグループ] ページに移動し、リソースグループを見つけて、Operation 列の ホームスペースの変更 をクリックします。
-
対象のリソースグループがリストにあるが選択できない場合は、[リソースグループ] ページに移動し、リソースグループを見つけて、Operation 列で をクリックします。データサービス 用に、現在占有されているCU (従量課金リソースグループの場合) または CU保証 (サブスクリプションリソースグループの場合) を手動で設定します。
-
-
環境構成 エリアで、メモリ、タイムアウト、および Maximum Number of Data Records for a Single Request を設定できます。
-
最大タイムアウトは、選択した DataWorks サービスリソースグループと API Gateway インスタンスのタイプによって異なります:
-
共有 API Gateway インスタンス:DataService Studio の共有リソースグループの場合は最大 30,000 ms、DataService Studio 専用リソースグループの場合は最大 30,000 ms。
-
専用 API Gateway インスタンス:DataService Studio の共有リソースグループの場合は最大 30,000 ms、DataService Studio 専用リソースグループの場合は最大 90,000 ms。
説明API のレスポンスタイムは、その SQL 実行時間に依存します。リクエストの失敗を防ぐために、API の タイムアウト を予想される実行時間より大きい値に設定してください。
-
-
1 ページあたりの最大エントリ数は、選択したサービスリソースグループのタイプによって異なります:
-
DataService Studio の共有リソースグループを選択した場合、ページネーションが有効な場合の 1 ページあたりの最大データレコード数は 2,000 です。
-
DataService Studio 専用リソースグループを選択した場合、ページネーションが有効な場合の 1 ページあたりの最大データレコード数は 10,000 です。
説明API が返すことができる結果の総数に上限はありません。
-
-
7. 保存と送信
ツールバーの
保存アイコンをクリックします。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 のクローン作成や削除を行うことで API を管理できます。Service Management ページでは、API リストを展開して公開済み API の詳細を表示できます。詳細については、「API の表示、削除、移動、クローン作成、一括操作、およびコードによる検索」をご参照ください。
> クォータ管理