Dataphin のオープンプラットフォームは OpenAPI 機能を提供しており、OpenAPI 呼び出しを通じて Dataphin の機能を活用してアプリケーションの統合とインタラクションを実現できます。
前提条件
OpenAPI 機能を購入する必要があります。
権限の説明
シームレスなビジネス統合を実現するために、スーパー管理者アカウントを使用して AccessKey と SecretKey を呼び出すことをお勧めします。
制限事項
現在、OpenAPI の呼び出しをサポートしているのは Java SDK のみです。 Python やその他の言語はまだサポートされていません。
ステップ 1:OpenAPI 使用の準備
Dataphin インターフェイスで、右上隅にあるプロフィール写真をクリックしてユーザーセンターにアクセスし、[ユーザーアカウント] をクリックします。
左側のナビゲーションウィンドウで [API アクセス] > [アクセスキー管理] に移動して [アクセスキー管理] ページに入り、エンドポイント、AccessKey、SecretKey などの詳細を取得します。
エンドポイント: ドメイン名など、サーバーのアクセスポイント情報を指します。これは Dataphin バージョン 4.1 より前は表示されませんでした。この情報を取得するには、運用およびメンテナンスデプロイメントチームにお問い合わせください。
AccessKey/SecretKey: アクセスキーリストエリアで、[アクセスキーの作成] ボタンをクリックして AccessKey/SecretKey を取得します。
ダイアログボックスを閉じると AccessKey Secret を取得できなくなるため、AccessKey ファイルを速やかにダウンロードしてください。
OpTenantId: これはテナント ID で、Dataphin インターフェイス内のブラウザのアドレスバーに表示されます。たとえば、URL
https://dataphin.example.com/home/?tenantId=123456
では、tenantId の値は 123456 です。プロジェクト ID はめったに変更されないため、定数または設定項目として保存できます。
ステップ 2:OpenAPI SDK の使用
OpenAPI SDK の取得
[アクセスキー管理] ページで、[openapi SDK のダウンロード] ボタンをクリックします。ダウンロードが完了したら、ファイルを解凍して、図のように内容を表示します。
圧縮パッケージの内容 | 説明 |
aliyun-java-sdk-dataphin | OpenAPI SDK JAR パッケージ。Maven プロジェクトに導入できます。SDK1.0 および SDK2.0 インターフェイスの入力と出力の定義が含まれています。 |
aliyun-java-sdk-dataphin-core | OpenAPI SDK JAR パッケージ。Maven プロジェクトに導入できます。API の進化と最適化により、Dataphin は API 呼び出しごとに異なる SDK バージョンを提供しています。
|
doc | Dataphin OpenAPI - SDK1.0 インターフェイスドキュメント:
|
doc-v2 | Dataphin OpenAPI - SDK2.0 インターフェイスドキュメント:
|
example | OpenAPI 開発アクセスリファレンス例。 |
SDK を使用して API インターフェイスを呼び出す
SDK パッケージのサンプルプロジェクトを参照し、次の 3 つの JAR パッケージの Maven 依存関係を含めます。
aliyun-java-sdk-dataphin は SDK パッケージに含まれています。
aliyun-java-sdk-dataphin-core は SDK パッケージに含まれています。
aliyun-java-sdk-core は Maven パブリックリポジトリから入手できます。
Dataphin の OpenAPI SDK は Alibaba Cloud OpenAPI サードパーティライブラリ: aliyun-java-sdk-core に依存しているため、コードコンパイルの環境はパブリックネットワークにアクセスして必要なサードパーティ ライブラリ JAR パッケージをダウンロードできる必要があります。
<dependencies>
<dependency>
<groupId>com.alibaba.dataphin</groupId>
<artifactId>aliyun-java-sdk-dataphin</artifactId>
<version>${取得した SDK.JAR のバージョンに応じて特定のバージョンが決まります}</version>
<systemPath>${JAR パス}/aliyun-java-sdk-dataphin-{SDK バージョン}.JAR</systemPath>
</dependency>
<dependency>
<groupId>com.alibaba.dataphin</groupId>
<artifactId>aliyun-java-sdk-dataphin-core</artifactId>
<version>${取得した SDK.JAR のバージョンに応じて特定のバージョンが決まります}</version>
<systemPath>${JAR パス}/aliyun-java-sdk-dataphin-core-{SDK バージョン}.JAR</systemPath>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.3</version>
</dependency>
</dependencies>
Idea コンパイラが必要な JAR パッケージを見つけられない場合は、以下に示すように手動で追加できます。
API 呼び出しのコード例
package com.example.demo;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.dataphin.DataphinAcsClient;
import com.aliyuncs.dataphin.model.v20200830.security.ListUsersRequest;
import com.aliyuncs.dataphin.model.v20200830.security.ListUsersResponse;
import com.aliyuncs.dataphin_public.model.v20230630.ListAddableUsersRequest;
import com.aliyuncs.dataphin_public.model.v20230630.ListAddableUsersResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
private static final Logger log = LoggerFactory.getLogger(Main.class);
/**
* regionId: カスタマイズ可能、例:dataphin
*/
public static final String REGION_ID = "dataphin";
/**
* endpoint: Dataphin の OpenAPI サービスアドレス。運用およびメンテナンスデプロイメントチームに連絡して取得してください
*/
public static final String ENDPOINT = "dataphin-openapi.env16.aliyun.com";
/**
* accessKey: Dataphin の AK。Dataphin の右上隅にある [個人情報 - 個人センター - アクセスキー管理] から取得します。現在の個人の ID を表すため、スーパー管理者アカウントを使用して呼び出すことをお勧めします。
*/
public static final String ACCESS_KEY = "******";
/**
* secret: Dataphin の SK。上記と同じ方法で取得します
*/
public static final String ACCESS_SECRET = "******";
/**
* テナント ID。Dataphin インターフェイスのブラウザのアドレスバーから取得します
* 例: [https://dataphin.example.com/home/?tenantId=123456]、tenantId は 123456 です。プロジェクトは簡単には変更されないため、定数または設定項目として保存できます
*/
public static final Long TENANT_ID = 123456L;
/**
* ステップ 2: 呼び出し例、テナント ID に基づいてユーザーリストを取得します
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// SDK v1.0 呼び出し例
testBySdkV1();
//SDK v2.0 呼び出し例
testBySdkV2();
}
/**
* SDK v1.0 呼び出し例
* SDK v1.0 のすべてのインターフェイスリクエストは、ディレクトリ com.aliyuncs.dataphin.model.v20200830 にあります
* @throws ClientException
*/
private static void testBySdkV1() throws ClientException {
ListUsersRequest request = new ListUsersRequest();
ListUsersRequest.UserPagedQuery query = new ListUsersRequest.UserPagedQuery();
request.setOpTenantId(TENANT_ID);
query.setPage(1);
query.setPageSize(20);
request.setUserPagedQuery(query);
try {
ListUsersResponse response = getSdkV1Client().getAcsResponse(request);
System.out.println(response.getData().getTotalCount());
} catch (ClientException e) {
log.error(e.getMessage(), e);
System.out.println(e.getMessage());
throw e;
}
}
/**
* SDK v2.0 呼び出し例
* SDK v2.0 のすべてのインターフェイスリクエストは、ディレクトリ com.aliyuncs.dataphin_public.model.v20230630 にあります
* @throws ClientException
*/
private static void testBySdkV2() throws ClientException {
ListAddableUsersRequest request = new ListAddableUsersRequest();
request.setOpTenantId(TENANT_ID);
ListAddableUsersRequest.ListQuery listQuery = new ListAddableUsersRequest.ListQuery();
listQuery.setPage(1);
listQuery.setPageSize(20);
request.setListQuery(listQuery);
try {
ListAddableUsersResponse response = getSdkV2Client().getAcsResponse(request);
System.out.println(response.getPageResult().getTotalCount());
} catch (ClientException e) {
log.error(e.getMessage(), e);
System.out.println(e.getMessage());
throw e;
}
}
/**
* Dataphin OpenAPI - SDK2.0 クライアント接続メソッド
* @return
*/
static DefaultAcsClient clientV2 = null;
public static synchronized DefaultAcsClient getSdkV2Client() {
if(clientV2!= null) {
return clientV2;
}
DefaultProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY, ACCESS_SECRET);
DefaultProfile.addEndpoint(REGION_ID, "dataphin-public", ENDPOINT);
profile.getHttpClientConfig().setIgnoreSSLCerts(true);
clientV2 = new DefaultAcsClient(profile);
return clientV2;
}
/**
* Dataphin OpenAPI - SDK1.0 クライアント接続メソッド
* @return
*/
static DataphinAcsClient clientV1 = null;
public static synchronized DataphinAcsClient getSdkV1Client() {
if(clientV1 != null) {
return clientV1;
}
DefaultProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY, ACCESS_SECRET);
DefaultProfile.addEndpoint(REGION_ID, "dataphin", ENDPOINT);
profile.getHttpClientConfig().setIgnoreSSLCerts(true);
clientV1 = new DataphinAcsClient(profile);
return clientV1;
}
}
OpenAPI FAQ
以下は、一般的な API エラーです。特定の API エラーメッセージについては、API ドキュメントを参照するか、Dataphin テクニカルサポートにお問い合わせください。
OpenAPI エラー | 解決策 |
| エンドポイントが正しくないか、DNS 解決が設定されていません。ドメイン名が正しいかどうか、または IP が正しく解決できるかどうかを確認してください。 コマンド |
| 呼び出された AccessKey/SecretKey が正しくないか、呼び出された AccessKey が無効になっています。確認してください。 |
| 共通パラメーター opTenantId がありません。OpenAPI 使用の準備を参照してください。 |
| 共通パラメーター opTenantId が正しくありません。OpenAPI 使用の準備を参照してください。 |