Extend Codegen CLIを使用してExtend Service Extension用のGo Extend SDKモジュールを生成する
注釈:本資料はAI技術を用いて翻訳されています。
Overview
この記事では、Extend Codegen CLIテンプレートパックを使用して、Go Modular Extend SDK用のカスタムサービスモジュールを生成する方法を順を追って説明します。
カスタムサービスモジュールを使用すると、開発者はGo Modular Extend SDKを活用してカスタムサービスAPIと連携できます。これには、Extend Service Extensionで作成されたサービスだけでなく、OpenAPI 2.0仕様を提供するその他のカスタムサービスも含まれます。
Extend Codegen CLIテンプレートパックは、MakefileといくつかのJinjaテンプレートファイルで構成されています。必要なコードを生成するには、単一のmakeコマンドを実行するだけです。このコマンドを実行すると、Extend Codegen CLIが起動し、カスタムサービスAPIを記述したOpenAPI 2.0 JSONファイルとJinjaテンプレートファイルを処理して、対応するコードを生成します。
このガイドに従う際は、Go Extend SDKではなく、Go Modular Extend SDKを使用してください。
前提条件
-
以下のツールがインストールされたWindows 11 WSL2またはLinux Ubuntu 22.04。
a. Bash
bash --version
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
...b. Make
- Ubuntuリポジトリからインストールするには、次を実行します:
sudo apt update && sudo apt install make。
make --version
GNU Make 4.3
...c. Docker (Docker Engine v23.0以降)
- Ubuntuリポジトリからインストールするには、次を実行します:
sudo apt update && sudo apt install docker.io docker-buildx docker-compose-v2。 - ユーザーを
dockerグループに追加します:sudo usermod -aG docker $USER。 - 変更を有効にするために、ログアウトして再度ログインします。
docker version
...
Server: Docker Desktop
Engine:
Version: 24.0.5
... - Ubuntuリポジトリからインストールするには、次を実行します:
-
Go用のExtend Codegen CLI テンプレートパックzip。
-
カスタムサービス用の有効なOpenAPI 2.0 JSONファイル。
備考カスタムサービスがExtend Service Extensionを使用している場合、アプリがAccelByte Gaming Services (AGS)にデプロイされると、OpenAPI 2.0 JSONファイルが自動的に生成されます。これにアクセスするには、AGSの
Admin Portalを開き、アプリのApp Detailsページに移動してOpen API Documentationをクリックし、Swagger UIページの上部にあるJSONファイルへのリンクを見つけてください。あるいは、AGSにアプリをデプロイする前にOpenAPI 2.0 JSONファイルを取得する必要がある場合は、こちらを参照してください。
Extend Service Extension用のGo Extend SDKモジュールを生成する
-
カスタムサービス用のOpenAPI 2.0 JSONファイルを
extend-service-extension-module-sdk/specフォルダに配置します。この例では、ファイル名はguild.jsonです。/path/to/my/extend-service-extension-module-sdk/
|__ spec/
|__ guild.jsonimportantExtend Codegen CLIテンプレートパックは、OpenAPI 2.0 JSONファイル名をサービスの識別子として使用します。 ファイル名はお好みに応じて変更できますが、コード生成時の問題を避けるため、すべて小文字のアルファベット (a-z) を使用することを推奨します。
注意複数のOpenAPI 2.0 JSONファイルを扱う場合、ファイル間で
basePathの値が同一だと生成されるコードに問題が発生する可能性があります。 サービスがデプロイされた際の実際のベースパスと一致する、一意のbasePath値を各OpenAPI 2.0 JSONファイルに設定することを推奨します。 -
ダウンロードしたExtend Codegen CLIテンプレートパックを解凍し、展開されたフォルダに移動して、
makeコマンドを実行してコードを生成します。unzip accelbyte-go-sdk-template-pack.zipcd accelbyte-go-sdk-template-pack/make all \
CODEGEN_IMAGE_VERSION=<codegen-cli-version> \
SDK_PATH=/path/to/my/extend-service-extension-module-sdk \
SPEC_PATH=/path/to/my/extend-service-extension-module-sdk/spec備考CODEGEN_IMAGE_VERSIONはこちらで確認できます。新しいプロジェクトでは、利用可能な最新バージョンを使用することを推奨します。PROJECT_PATHとSPEC_PATHは手順1から取得します。
-
Goアプリケーションプロジェクトの
go.modファイルに、extend-service-extension-module-sdkをパッケージモジュールとして追加します。module golang-application
go 1.18
replace (
github.com/AccelByte/accelbyte-go-modular-sdk/guildService-sdk => /path/to/the/extend-service-extension-module-sdk
)
require (
github.com/AccelByte/accelbyte-go-modular-sdk/guildService-sdk v0.0.0-00010101000000-000000000000
github.com/AccelByte/accelbyte-go-modular-sdk/iam-sdk v0.1.0-alpha.1
github.com/AccelByte/accelbyte-go-modular-sdk/services-api v0.1.0-alpha.1
)Go Modular Extend SDKでモジュールを使用する方法の例については、このはじめにのサンプルプロジェクトを参照してください。