設定手順
Smart API Gateway 利用手順
SaaSus Platform の Smart API Gateway 機能を利用して、API を簡単に公開・管理するための設定手順を以下に示します。
Step 1: 事前準備(SaaS 環境とアプリのセットアップ)
-
SaaSus Platform のアカウントを作成
本機能を利用するためには、SaaSus Platform のアカウントが必要です。
SaaSus Platform にアクセスし、SaaSus Platform のアカウントを作成し、ログインしてください。 -
検証に使用する AWS 環境の準備
本機能を利用するためには、AWS アカウントが必要です。
AWS アカウントをお持ちでない場合は、AWS アカウントの作成 にアクセスし、AWS アカウントを作成してください。 -
SaaS 環境とサンプルアプリ
CloudFormation で AWS に SaaS 環境とサンプルアプリを作成します。
今回検証に使用する AWS 環境にて以下の CloudFormation を実行してください。
実行後に CloudFormation の出力結果に記載されている URL にアクセスし、password を入力して VSCode の環境にログインしてください。
SaaS 環境とサンプルアプリの作成-
サンプルアプリ
本手順で使用するサンプルアプリは以下です
Smart API Gateway SaaS Sample -
SaaSus Java SDK
本手順で使用する SaaSus Java SDK は以下です。
Java SDK
-
-
SDK のセットアップ 下記手順で SDK のセットアップを行っています。
- SaaSus Java SDK でパッケージを作成し、 ローカルリポジトリにインストールしてください。
cd saasus-sdk-java
mvn clean package
mvn install:install-file -Dfile=target/saasus-sdk-java-1.0.0.jar -DgroupId=io.saasus -DartifactId=saasus-java -Dversion=0.0.1 -Dpackaging=jar
- implementation-sample-smart-api-gateway/pom.xml の dependencies タグと profiles タグの中に下記を追記しています。
<!-- saasus platform sdk -->
<dependency>
<groupId>io.saasus</groupId>
<artifactId>saasus-java</artifactId>
<version>0.0.1</version>
</dependency>
<!-- saasus platform sdk -->
<!-- smart api gateway parameter setting -->
<profiles>
<profile>
<id>with-parameters</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<!-- smart api gateway parameter setting -->
- implementation-sample-smart-api-gateway プロジェクトで設定を行ってください。
cd implementation-sample-smart-api-gateway
mvn clean package
cp .env.example .env
vi .env
SAASUS_SAAS_ID="xxxxxxxxxx"
SAASUS_API_KEY="xxxxxxxxxx"
SAASUS_SECRET_KEY="xxxxxxxxxx"
docker compose up -d
SAASUS_SAAS_ID,SAASUS_API_KEY,SAASUS_SECRET_KEYの取得方法は、下記をご参照ください。
SaaS ID と API キー、クライアントシークレットの再確認
Step 2: ソースコードへのアノテーション設定
-
公開対象のメソッドにアノテーションを追加し、API エンドポイントとして使用できるように設定します。
今回はサンプルと して
src/main/java/implementsample/service/InventoryService.java
getInventoryEntryPoint メソッドを API として呼び出します。Smart API Gateway は static なメソッドを呼び出す仕様となります。
そのため Smart API Gateway から呼び出される static なメソッドを作成し、その中で TenantInventory を呼び出しています。
また、作成した static なメソッドに@SaaSusAPI のアノテーションを付与し、Smart API Gateway のエンドポイントとして利用することを宣言しています。
- java
package implementsample.service;
import java.util.List;
import implementsample.repository.InventoryRepository;
import implementsample.util.TenantApiClient;
import saasus.sdk.modules.SaaSusAPI;
import implementsample.dto.InventoryDto;
public class InventoryService {
public List<InventoryDto> getInventory(String tenantId) {
// テナントIDに対応する在庫情報取得
return InventoryRepository.TenantInventory.getOrDefault(tenantId,
InventoryRepository.TenantInventory.get("default"));
}
@SaaSusAPI(path = "getInventory")
public static List<InventoryDto> getInventoryEntryPoint(String inventoryId) {
TenantApiClient tenantClient = new TenantApiClient();
String tenantId = tenantClient.getTenantIdFromApiKey(inventoryId);
return InventoryRepository.TenantInventory.getOrDefault(tenantId,
InventoryRepository.TenantInventory.get("default"));
}
}
Step 3: API Server の起動設定
- アプリケーションの起動時に
saasus-sdk
の API サーバーが起動するよう、src/main/java/implementsample/ApiServerListener.java クラスを追加しています。
- java
// saasus api server
import saasus.sdk.util.apiserver.ApiServer;
...省略...
// Start the API server on port 8083
ApiServer.start(8083);
-
Application Load Balancer に対して、以下の設定が必要です。(CloudFormation で設定済みです)
- リスナー: ポート 8083
- ターゲットグループ: ポート 8083 のターゲットグループを作成
- セキュリティグループ: ALB とアプリケーションにポート 8083 へのアクセスを許可