KotlinでMomento Topicを始める
KotlinとMomentoトピックをすぐに使い始める必要がある場合、このページには必要な基本的なAPIコールが含まれています。完全で実用的なコードサンプルは、Kotlin SDK examples を確認してください。
Momento SDKをインストールする
Momento SDKはMaven Centralで入手できます: `software.momento.kotlin/sdkにあります。
Maven Centralにアクセスして、SDKの最新バージョンを見つけてください。
既存のKotlinプロジェクトにクライアント・ライブラリをインストールする:
Gradle
implementation("software.momento.kotlin:sdk:x.x.x")
Maven
<dependency>
<groupId>software.momento.kotlin</groupId>
<artifactId>sdk</artifactId>
<version>x.x.x</version>
</dependency>
Momento APIキーを取得する
Momento API キーが必要です。Momento Web Console](https://console.gomomento.com/)から取得できます。 トークンを取得したら、Momentoクライアントが利用できるように環境変数に保存します:
export MOMENTO_API_KEY=<your api key here>
Note: セキュリティ強化のためには、APIキーを環境変数ではなく、AWS Secret ManagerやGCP Secret Managerのようなものに入れるのがベストプラクティスだが、ここではデモのためにAPIキーを使っている。
TopicClientのセットアップ
このコ ードでは、パブ/サブ・トピックとの対話に使用する TopicClient を作成します。
TopicClient(
CredentialProvider.fromEnvVar("MOMENTO_API_KEY"), TopicConfigurations.Laptop.latest
).use { topicClient ->
//...
}
トピックにメッセージを公開する
これは、"topic "というトピックにメッセージを発行し、発行が成功したかどうかをチェックするために戻り値をキャッチする例です。
when (val response = topicClient.publish("test-cache", "test-topic", "test-message")) {
is TopicPublishResponse.Success -> println("Message published successfully")
is TopicPublishResponse.Error -> throw RuntimeException(
"An error occurred while attempting to publish message to topic 'test-topic': ${response.errorCode}",
response
)
}
トピックを購読する
これは、"topic "というトピックを購読する例である。このトピックにメッセージがパブリッシュされると、ここのコードはそれを非同期に受信して表示する。
when (val response = topicClient.subscribe("test-cache", "test-topic")) {
is TopicSubscribeResponse.Subscription -> coroutineScope {
launch {
withTimeoutOrNull(2000) {
response.collect { item ->
when (item) {
is TopicMessage.Text -> println("Received text message: ${item.value}")
is TopicMessage.Binary -> println("Received binary message: ${item.value}")
is TopicMessage.Error -> throw RuntimeException(
"An error occurred reading messages from topic 'test-topic': ${item.errorCode}", item
)
}
}
}
}
}
is TopicSubscribeResponse.Error -> throw RuntimeException(
"An error occurred while attempting to subscribe to topic 'test-topic': ${response.errorCode}", response
)
}
コードの実行
Kotlin SDK GitHub repo examples directoryに完全な動作例があります。
これらの基本的なAPIコール以外にも、MomentoのAPIコールの詳細については、APIリファレンスページを参照してください。