ユーザーは、API がテストされ、DataService Studio マーケットプレイスに公開された後にのみ、DataService Studio マーケットプレイスで API を呼び出すための権限をクエリおよびリクエストできます。このトピックでは、API をテストし、DataService Studio マーケットプレイスに公開する方法について説明します。
前提条件
開始する前に、API を作成する必要があります。詳細については、「API を作成する」をご参照ください。
API 呼び出し/テストの直接接続モードとプロキシモードの説明
DataService Studio は、API の呼び出しに直接接続モードとプロキシモードをサポートしています。API が行レベルの権限に関連付けられている場合、認証方法は呼び出しモードによって決定されます。
直接接続モード:行レベルの権限で DataService Studio アプリケーションの行レベルの権限を申請し、認証にアプリケーションを使用します。
プロキシモード:アプリケーションがユーザーの行レベルの権限で API を呼び出す必要がある場合は、行レベルの権限で DataService Studio アプリケーションの行レベルの権限を申請し、次にアプリケーションの API のプロキシ権限を申請する必要があります。これにより、ユーザーに代わって API を呼び出すことができます。
API 権限制御は、フィールドレベルの権限と行レベルの権限に分けられます。行レベルの権限の認証モードには、直接接続モードとプロキシモードが含まれます。
API が行レベルの権限に関連付けられており、アプリケーションにプロキシ権限がある場合、DelegationUid パラメーターが設定されていないか空の場合、API の呼び出しに直接接続モードが使用されます。DelegationUid が空でない場合、API の呼び出しにプロキシモードが使用されます。
API テストページの上部領域の操作
[ドメイン名を表示]: ページの上部でドメイン名を表示できます。このドメイン名は内部テストのみに使用されます。クライアント呼び出しに使用されるドメイン名については、「ドメイン名を表示」をご参照ください。
[API を切り替え]: ページの左上隅で、送信済みまたは公開済みの API に切り替えて表示できます。あいまい検索を使用して API を名前または ID で検索し、現在のサービスプロジェクトでアクセス権限を持つ API に切り替えることができます。システムは、現在のプロジェクトでアクセスした(表示、編集、テスト、追加を含む)最新の 9 つの API を推奨します。
[API ランタイム環境を切り替え]: API テスト用に API ランタイム環境を切り替えることができます。ランタイム環境が開発環境の場合、テストには開発データソースが使用されます。ランタイム環境が本番環境の場合、テストには本番データソースが使用されます。API が公開されていない場合、テストのために本番環境に切り替えることはできません。
説明API が基本モードで、ランタイム環境が開発環境の場合、API のテストには本番データソースが使用されます。
[API バージョンを切り替え]: テストページの右上隅で、テスト用にバージョンを切り替えることができます。ランタイム環境が開発環境の場合、送信済みバージョンを選択できます。ランタイム環境が本番環境の場合、公開済みバージョンを選択できます。
手順 1: API をテストする
Dataphin のホームページで、トップメニューバーから [サービス] > [API 開発] を選択します。
左上のサービスプロジェクトを選択し、左側のナビゲーションウィンドウで [API サービス] > [API] を選択して API ページに移動します。
API ページで、ターゲット API の [アクション] 列にある [テスト] アイコンをクリックして、API テストページに移動します。
API ページで、ターゲット API の [アクション] 列にある [バージョン管理] をクリックして [バージョン管理] パネルを開き、ターゲット API の操作列にある [テスト] をクリックして API テストページに移動します。
[API テスト] ページで、パラメータ値を入力して、返されたパラメータが期待どおりかどうかを確認できます。
[ビジネスリクエストパラメーターリスト] セクションでパラメーターを設定します。
操作タイプが GET または LIST の場合、[テスト入力値] をビジネスデータのフィールド値に設定します。リストされているパラメーターは、API の作成時に設定したリクエストパラメーターです。
操作タイプが Create、Update、または Delete の場合、リストされているフィールドは API の作成時に設定したリクエストパラメーターです。以下に説明するように、パラメーターを追加、コピー、または削除できます。
パラメーター項目の追加: [パラメーター項目を追加] をクリックし、プロンプトに従ってパラメーター値を入力します。API の最大入力制限までデータエントリを追加できます。
一括追加: [一括追加] をクリックします。[ビジネスリクエストパラメーターの一括追加] ダイアログボックスで、パラメーターインスタンス値を入力します。各パラメーターセットを改行で区切ります。パラメーターの区切り文字とテキスト修飾子を指定できます。
区切り文字: フィールドを区切るために使用される文字。コンマ (,)、セミコロン (;)、縦棒 (|)、タブ文字 (\t)、またはカスタム区切り文字を使用できます。カスタム区切り文字には複数の文字を含めることができます。
テキスト修飾子: テキストフィールドを囲むために使用される文字。サポートされているオプションは、なし、二重引用符 ("")、および単一引用符 ('') です。
全画面入力: [全画面入力] をクリックします。次に、ページの下部にある [パラメーター項目を 1 行追加]、[パラメーター項目を 5 行追加]、または [パラメーター項目を 10 行追加] をクリックして、行をすばやく追加します。
コピー: [アクション] 列の [コピー] アイコンをクリックします。システムは現在の行のパラメーター値を複製し、リストの最後にある新しい行として追加します。
削除: [アクション] 列の [削除] アイコンをクリックして、単一の行を削除します。複数の行を削除するには、リストからパラメーターを選択し、下部にある [一括削除] をクリックします。
[共通リクエストパラメータリスト] セクションのパラメータを構成します。
API が直接接続データソース API (クエリタイプ) またはサービスユニット API の場合、システムは API リクエストメソッドに基づいて PageStart、PageSize、OrderByList などのパラメーターを表示します。
ページングクエリが有効で、API 操作タイプが LIST の場合、PageStart、PageSize、および OrderByList パラメーターが表示されます。API 操作タイプが GET の場合、OrderByList パラメーターが表示されます。
ページングクエリが無効で、API 操作タイプが LIST の場合、OrderByList パラメーターが表示されます。[パラメーターを非表示] チェックボックスをオフにすると、PageSize および OrderByList パラメーターが表示されます。
API が直接接続データソース API (クエリタイプ)、サービスユニット API、または複合 API であり、関連する行レベルの権限が有効になっている場合、AccountType および DelegationUid パラメーターが表示されます。
API が直接接続データソース API (操作タイプ) の場合、ApiVersion パラメーターのみが表示されます。
説明API をテストする際、入力パラメーターは 1,000 文字を超えることはできません。API を直接呼び出す場合、文字数制限はありません。
パラメーター
説明
テスト入力値
アカウントの種類
プロキシモード認証を使用する場合、プロキシユーザーのアカウントタイプを指定する必要があります。
ACCOUNT_NAME:Dataphin ユーザー名。
USER_ID:Dataphin 内部固有 ID。
SOURCE_USER_ID:ソース システム アカウント ID。
説明このパラメーターは、DelegationUid が設定されている場合にのみ構成する必要があります。このパラメーターが入力されていない場合、デフォルトのタイプは USER_ID です。
プロキシユーザーのアカウントタイプを選択します。ACCOUNT_NAME、USER_ID、または SOURCE_USER_ID を選択できます。
委任 UID
アクセスをプロキシされているユーザー。選択した AccountType に基づいて、対応するアカウント ID を渡す必要があります。このパラメーターを設定すると、プロキシモード認証方法が使用されます。
DelegationUid としては、現在のテナントアカウントのみがサポートされています。
ApiVersion
呼び出す API のバージョンを指定します。デフォルトでは最新バージョンが使用されます。
テスト入力値は、ページの右上隅でバージョンを切り替えることによって取得されます。
説明ランタイム環境が開発環境の場合、apiVersion パラメータがサポートされており、呼び出し用に送信済み API のみを 選択できます。
PageStart
返されたデータの表示を開始するレコードを定義します。
2 などの正の整数を構成します。
PageSize
ページごとに返すレコード数を定義します。
56 などの正の整数を構成します。
OrderByList
返される複数のパラメータのソート方法を定義します。指定しない場合、デフォルトでは昇順が使用されます。
テスト入力値は、[ビジネスリクエストパラメータリスト] から取得する必要があります。
ReturnTotalNum
結果の合計行数を返すかどうかを指定します。
ReturnTotalNum=trueに設定すると、合計行数が返されます。これはパフォーマンスに影響する可能性があります。このパラメーターは、API 操作タイプが List で、ページングクエリが有効な場合に表示されます。
このパラメーターを 1000 などの正の整数に設定します。
API が直接接続データソース API (クエリタイプ)、サービスユニット API、または複合 API であり、関連する行レベルの権限が有効になっている場合、[行レベルの権限リスト] セクションには、現在の API バージョンと環境に関連付けられている有効な行レベルの権限に関する情報が表示されます。この情報には、行レベルの権限名と説明が含まれます。
[オプションの戻りパラメーターリスト] セクションで、戻りパラメーターを選択します。戻りパラメーターのリストは、選択した API バージョンの API 戻りパラメーターに対応します。
操作タイプが GET または LIST の場合、API をテストするには少なくとも 1 つの戻りパラメーターを選択する必要があります。
操作タイプが Create、Update、または Delete の場合、すべてのパラメーターがデフォルトで選択され、選択を解除することはできません。
API のプロトコルと戻り数を構成します。
パラメーター
説明
プロトコル
API が HTTP と HTTPS の両方をサポートするように設定した場合、テストに使用するプロトコルを選択できます。
戻り数
API をテストする際に返すレコード数を指定します:
リクエストメソッドが LIST の場合、[戻り件数] を選択して最大 10,000 レコードを返すことができます。
GET リクエストの場合、[戻り件数] を変更することはできません。
構成が完了したら、戻り数の後にある [デバッグ]/[テスト] をクリックして、API とデータソースデータ間の接続性をテストします。
API をテストする際、[スクリプトの表示] をクリックして SQL スクリプトを表示できます。これにより、クエリ結果がスクリプトの期待と一致するかどうかを確認できます。
説明登録済み API またはモデル API にスクリプトがない場合、スクリプトを表示することはできません。
複合 API を呼び出す際、参照される API に行レベルの権限制御がある場合、AccountType および DelegationUid パラメーターを参照される API に渡す必要があります。
プロキシモードを使用して組み合わせ API を呼び出すには、組み合わせ API のプロキシ権限を申請するだけで済みます。
API 呼び出しモードが非同期モードの場合、API がテスト/デバッグされると、クエリ結果がテスト結果領域に表示されます。テスト結果で実行結果、ログ、コード、その他の情報を表示できます。非同期クエリプロセスについては、「非同期呼び出しプロセスの説明」をご参照ください。
リクエスト結果を表示する: [API を呼び出す] タブをクリックし、[戻り結果] タブをクリックして、API 呼び出し本文で返されたリクエスト結果を表示します。
スクリプトコード: [API を呼び出す] タブをクリックし、[スクリプトコード] タブをクリックして、記述された SQL 文を表示します。
ログを表示する: [クエリステータスを取得] タブをクリックして、API 呼び出しの実行ログを表示します。API テスト/デバッグをキャンセルするには、[クエリをキャンセル] をクリックしてクエリリクエストをキャンセルします。
クエリ結果を表示する: [クエリ結果を取得] タブをクリックして、API 呼び出し本文で返された最終的なクエリ結果を表示します。
[戻り結果]/[テスト結果] セクションで、テスト結果を表示します。
テストが失敗した場合は、「付録: エラーコードとソリューション」をご参照ください。
この操作は、API をテストする場合にのみサポートされています。下部にある [API 認証] ボタンをクリックして、API をアプリケーションに認証します。詳細については、「DataService Studio 権限管理」をご参照ください。
手順 2: API を公開する
単一の API を公開する
[API] リストページで、対象の API の操作列にある [公開] アイコンをクリックします。
[API 公開] ダイアログボックスで、公開するバージョンを選択します。
API にオンラインバージョンがある場合、システムはパラメータの変更と依存関係をチェックして、プロジェクトで設定された公開制御メカニズムがトリガーされるかどうかを判断します。ターゲット API で [失効に移動] 操作と [表示に移動] 操作を実行できます。
[失効に移動]: [失効に移動] をクリックして、[管理ハブ] > [権限管理] > [DataService Studio 権限](権限管理下)> [API 権限] タブに移動します。現在の API 権限失効ダイアログボックスで、この API の権限を失効させることができます。
[表示に移動]: [表示に移動] をクリックして、[サービス] > [開発] > [API] ページに移動します。システムは現在の API をフィルタリングし、複合 API を編集してこの複合 API への参照を削除するか、複合 API を削除できます。
複合 API に対する権限がない場合は、複合 API の所有者に連絡して、この API への参照を削除するように編集するか、複合 API を削除するように依頼できます。
説明DataService Studio のスーパー管理者とプロジェクト管理者のみが API 権限を失効させることができます。
公開済みバージョンが既にオンラインになっている場合、システムは新しいバージョンのオンライン公開プロセス中にパラメータをチェックします。これには、必須リクエストパラメータの追加、リクエストパラメータの削除、戻りパラメータの削除、リクエストパラメータのデータ型の変更が含まれます。これらの変更のいずれかが存在する場合、API の公開は、プロジェクトで設定された公開制御メカニズムに従ってブロックまたは許可されます。
API 公開制御のAPI がアプリケーションに認証されている設定が公開をブロックに設定されている場合、公開を続行するには API 権限を失効させる必要があります。
公開制御のAPI が複合 API によって参照されている設定が公開をブロックに設定されている場合、公開を続行するには、複合 API を編集してこの API への参照を削除するか、複合 API を削除する必要があります。
公開制御の両方の設定項目が公開をブロックするように設定されている場合、公開を続行するには、API 権限を失効させ、複合 API を編集してこの API への参照を削除するか、複合 API を削除する必要があります。
[確認] をクリックして、API を本番環境に公開します。
API のバッチ公開
[API] リストページで、API リストから公開する API を選択し、下部にある [バッチ公開] をクリックします。
[API バッチ公開] ダイアログボックスで、公開するバージョンを選択します。API の最新バージョンが送信済みバージョンの場合、システムはデフォルトでこのバージョンを入力します。
[確認] をクリックします。[API バッチ公開の詳細] ダイアログボックスで、API が正常に公開されたかどうかを確認します。公開に失敗した場合は、エラー詳細理由の後にある [表示] をクリックして、具体的な失敗理由を確認できます。
説明論理テーブルに基づいて作成された API は、バッチ公開をサポートしていません。
バッチ公開中にバージョンが選択されていない場合、API は公開されません。
この後、ビジネスアプリケーションユーザーは、DataService Studio 概要ページで API を呼び出すための権限をクエリおよびリクエストできます。
送信済み API のみがオンラインで公開できます。
新しいバージョンのオンライン公開は API 呼び出しに影響します。プロジェクトで異なる公開制御メカニズムを設定できます。API の公開中、システムは API が属するプロジェクトの構成に従って公開をブロックまたは許可します。詳細については、「サービスプロジェクトの作成」をご参照ください。
サービスユニットに基づいて作成された API の場合、システムは公開中に参照されているフィールドがサービスユニットに存在するかどうかをチェックします。データソースに基づいて作成された API の場合、システムは公開中に参照されているフィールドがデータソースに存在するかどうかをチェックします。
DataService Studio 高可用性モジュールが有効になっている場合、データソースに基づいて作成された API については、システムは公開中にバックアップリンクのデータソースと、そのデータソースで参照されているテーブルまたはフィールドが存在するかどうかをチェックしません。
付録: エラーコードとソリューション
エラーコード | 説明 | ソリューション |
DPN-OLTP-COMMON-000 | 成功。 | なし。 |
DPN.Oltp.Common.Running | 実行中 | なし。 |
DPN-OLTP-COMMON-001 | システムで不明なエラーが発生しました。 | チケット を送信するか、Dataphin サポート担当者にご連絡ください。 |
DPN-OLTP-COMMON-002 | パラメーターの例外が発生しました。 | パラメーターが正しいかどうかを確認してください。 |
DPN-OLTP-COMMON-003 | サポートされていません。 | なし。 |
DPN-OLTP-COMMON-004 | SQL 解析例外。 | フィールド エイリアスが SQL 文で定義されていません。 SQL 文を確認して修正してください。 |
DPN-OLTP-COMMON-005 | SQL インジェクションチェックに失敗しました。 | / |
DPN-OLTP-ENGINE-000 | クエリがタイムアウトしました。 | / |
DPN-OLTP-ENGINE-001 | パラメーターエラー。 | 構成されているパラメーターを確認してください。 |
DPN-OLTP-ENGINE-002 | オブジェクトが見つかりません。 | チケット を送信するか、Dataphin サポート担当者にご連絡ください。 |
DPN-OLTP-ENGINE-003 | サポートされていません。 | なし。 |
DPN-OLTP-ENGINE-004 | 通信テーブルエラー。 | なし。 |
DPN-OLTP-ENGINE-005 | SQL 解析に失敗しました。 | [チケット] を送信するか、Dataphin サポート担当者にご連絡ください。 |
DPN-OLTP-ENGINE-006 | メタデータエラー。 | |
DPN-OLTP-ENGINE-007 | パラメータ処理エラー。 | |
DPN-OLTP-ENGINE-008 | 実行モデルの構築エラー。 | |
DPN-OLTP-ENGINE-009 | 実行に失敗しました。 | |
DPN-OLTP-ENGINE-010 | データソースエラー。 | |
DPN-OLTP-ENGINE-011 | HBase エンジンはサポートされていません。 | なし。 |
DPN-OLTP-ENGINE-012 | オブジェクトのシリアル化に失敗しました。 | チケット を送信するか、Dataphin サポート担当者にお問い合わせください。 |
DPN-OLTP-ENGINE-013 | 権限検証に失敗しました。 | データテーブルに対する権限を申請してください。具体的な操作については、「テーブル権限の申請、更新、および返却」をご参照ください。 対応するデータテーブル権限を取得した後も問題が解決しない場合は、[チケット]を送信するか、Dataphin サポート担当者にご連絡ください。 |
DPN-OLTP-ENGINE-014 | Elasticsearch エンジンはサポートされていません。 | なし。 |
DPN-OLTP-ENGINE-015 | MongoDB エンジンはサポートされていません。 | なし。 |
DPN-OLTP-ENGINE-016 | フィールド タイプ エラー。 | 構成されているフィールドの型が、データソースのフィールドの型と一致しないか確認します。 |
DPN-OLTP-ENGINE-017 | Redis キャッシュの例外。 | チケットを送信するか、Dataphin サポート担当者にお問い合わせください。 |
DPN-OLTP-ENGINE-018 | クロスデータソースはサポートされていません。 | なし。 |
DPN-OLTP-ENGINE-019 | データ型エンコーディングまたはパラメーター型変換に失敗しました。 | チケットを送信するか、Dataphin サポート担当者にお問い合わせください。 |
DPN-OLTP-ENGINE-20 | サーキットブレーカー。 | |
DPN-OLTP-ENGINE-020 | API レスアプリケーションの行レベル権限プロキシの権限。 | API プロキシ権限を申請します。詳細については、「API 権限を管理する」をご参照ください。 |
DPN-OLTP-ENGINE-21 | レート制限。 | リクエストの同時実行数を減らすために、API レート制限を設定できます。 |
DPN-OLTP-ENGINE-22 | クエリがタイムアウトしました。 | / |
DPN-OLTP-ENGINE-23 | 複合 API におけるサブ API の例外。 | / |
DPN-OLTP-ENGINE-24 | プロキシ権限がありません。 | / |
DPN-OLTP-ENGINE-018-01 | クロスデータソースは Group By をサポートしていません。 | SQL を確認してください。 |
DPN-OLTP-ENGINE-018-02 | クロスデータソースは Order By をサポートしていません。 | |
DPN-OLTP-ENGINE-018-03 | クロスデータソースでは、Where 条件のないクエリはサポートされていません。 | |
DPN-OLTP-ENGINE-018-04 | クロスデータソースは、PageStart が 0 以外の値をサポートしていません。 | |
DPN-OLTP-ENGINE-018-05 | クロスデータソースは、Where 条件での OR 演算をサポートしていません。 | |
DPN-OLTP-ENGINE-018-06 | クロスデータソースは、単一の Select 項目における複数の物理テーブルからのフィールドをサポートしていません。 | |
DPN-OLTP-ENGINE-018-07 | クロスデータソースクエリには、すべてのプライマリキーを含める必要があります。 | |
DPN-OLTP-ENGINE-018-08 | HBase 名前空間が存在しません。 | / |
DPN.Oltp.Auth | 権限検証に失敗しました。 | / |
DPN.Oltp.Async.JobNotExists | 非同期 API ジョブが存在しません。 | / |
DPN.Oltp.Async.JobStatusNotSupport | 非同期 API タスクのステータスはこの操作をサポートしていません。 | / |
DPN.Oltp.Async.GetResultError | 非同期 API からの結果の取得に失敗しました。 | / |
DPN.Oltp.Oltp.JsonContentParseError | JSON コンテンツの解析に失敗しました。 | / |
DPN.Oltp.Oltp.HttpRequestError | HTTP リクエストが失敗しました。 | / |
DPN-OLTP-JDBC-001 | リクエストヘッダーにセッションがありません。 | 構成されているパラメーターが正しいかどうかを確認してください。 |
DPN-OLTP-JDBC-002 | セッションエラー。 | セッション ID とアカウント ID が一致するかどうかを確認します。一致する場合は、チケットを送信するか、Dataphin サポート担当者にご連絡ください。 |
DPN-OLTP-JDBC-003 | ユーザーはデータベースにアクセスする権限がありません。 | データソース権限を申請します。具体的な操作については、「データソース権限を申請する」をご参照ください。 対応するデータテーブル権限を取得した後も問題が解決しない場合は、チケットを送信するか、Dataphin サポート担当者に連絡して支援を求めてください。 |
DPN-OLTP-JDBC-004 | ユーザーはデータテーブルにアクセスする権限がありません。 | データテーブルの権限を申請します。具体的な操作については、「テーブル権限の申請、更新、および返却」をご参照ください。 対応するデータテーブルの権限を取得した後も問題が解決しない場合は、チケットを送信するか、Dataphin サポート担当者に連絡して支援を求めてください。 |
DPN-OLTP-JDBC-005 | アカウント ID エラー | アカウント ID の正確性を確認します。 |
DPN-OLTP-JDBC-006 | クエリが終了しました。 | なし。 |
DPN.Oltp.Jdbc.プロジェクト禁止 | このプロジェクトのテーブルを変更する権限がありません。 | データテーブル権限を申請します。具体的な操作については、「テーブル権限の申請、更新、および返却」をご参照ください。 対応するデータテーブル権限を取得した後も問題が解決しない場合は、[チケット]を送信するか、Dataphin サポート担当者に連絡して支援を求めてください。 |
DPN-OLTP-OLAP-001 | OLAP クライアントがデータソースのクエリに失敗しました。 | データソースを確認し、クライアントの再接続を試みてください。それでも失敗する場合は、チケットを送信するか、Dataphin サポート担当者に連絡して支援を求めてください。 |
DPN-OLTP-OLAP-002 | OLAP クライアントの実行に失敗しました。 | チケット を送信するか、Dataphin サポート担当者にお問い合わせください。 |
DPN.Oltp.Olap.SessionError | OLAP セッションエラーです。 | セッションの正当性を確認します。 |
DPN.Oltp.Olap.セッションが見つかりません | OLAP セッションが存在しません。 | / |
次のステップ
API のテストと公開が完了したら、DataService Studio マーケットプレイスで API を呼び出すための権限をクエリおよびリクエストできます。具体的な操作については、「API を呼び出す」をご参照ください。