メインコンテンツまでスキップ
非公開のページ
このページは非公開です。 検索対象外となり、このページのリンクに直接アクセスできるユーザーのみに公開されます。

Go Non-modular SDK から Go Modular Extend SDK への移行ガイド

Last updated on July 14, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要​

AccelByte Go Modular SDK は、AccelByte Gaming Services (AGS) が提供する各サービスを個別のモジュールに分割した最新の開発 SDK です。これにより、使用したいサービスを選択できます。

目的​

このガイドでは、すでに Go Extend SDK を使用している既存の Go プロジェクトを最新の Go Modular Extend SDK に移行する方法を説明します。

既存のプロジェクトを Go Modular Extend SDK に移行する​

  1. Go のインポートをリネームする。

    プロジェクト内のすべての .go ファイルのインポートパッケージ名のプレフィックスを、以下のようにリネームします。IDE の検索・置換機能を利用できます。

    変更前

    github.com/AccelByte/accelbyte-go-sdk

    変更後

    github.com/AccelByte/accelbyte-go-modular-sdk
    important

    Go Modular SDK と Non-modular SDK は別のリポジトリでホストされているため、この手順が必要です。

  2. 互換性モジュールを使用する。

    互換性モジュールには後方互換性レイヤーが用意されており、既存の Non-modular SDK から Modular SDK へスムーズに移行できます。これらのモジュールを適用した後は、特に何もする必要はありません。

    以下のコマンドを実行して、必要な Go Module の依存関係を自動的に解決します。

    go mod tidy

    このコマンドを実行すると、Go Modular SDK にすでに移行済みの状態になりますが、後方互換性レイヤーのモジュールをまだ使用しているため、Go build tags を使用する必要があります。Go build tags は、ビルドに含める Go 互換性モジュールを指定するために使用します。

以下の例では、AccelByte の achievement モジュールと iam モジュールを使用しているため、compat_achievement タグと compat_iam タグを含めています。

go build -tags compat_achievement,compat_iam .

利用可能なタグの一覧は以下のとおりです。

TagDescription
compatすべての AccelByte サービスモジュールを含める(Non-modular に類似)
compat_achievementachievement サービスの互換性モジュールを含める
compat_amsams サービスの互換性モジュールを含める
compat_basicbasic サービスの互換性モジュールを含める
compat_cloudsavecloudsave サービスの互換性モジュールを含める
compat_dslogmanagerdslogmanager サービスの互換性モジュールを含める
compat_dsmcdsmc サービスの互換性モジュールを含める
compat_eventlogeventlog サービスの互換性モジュールを含める
compat_gametelemetrygametelemetry サービスの互換性モジュールを含める
compat_gdprgdpr サービスの互換性モジュールを含める
compat_groupgroup サービスの互換性モジュールを含める
compat_iamiam サービスの互換性モジュールを含める
compat_leaderboardleaderboard サービスの互換性モジュールを含める
compat_legallegal サービスの互換性モジュールを含める
compat_lobbylobby サービスの互換性モジュールを含める
compat_match2match2 サービスの互換性モジュールを含める
compat_matchmakingmatchmaking サービスの互換性モジュールを含める
compat_platformplatform サービスの互換性モジュールを含める
compat_qosmqosm サービスの互換性モジュールを含める
compat_reportingreporting サービスの互換性モジュールを含める
compat_seasonpassseasonpass サービスの互換性モジュールを含める
compat_sessionsession サービスの互換性モジュールを含める
compat_sessionbrowsersessionbrowser サービスの互換性モジュールを含める
compat_socialsocial サービスの互換性モジュールを含める
compat_ugcugc サービスの互換性モジュールを含める

すべてのモジュールをビルドに含める場合は、compat タグのみを使用すると便利です。

go build -tags compat .
  1. 破壊的変更を移行する。

    Go Modular SDK への本格的な移行の準備が整ったら、破壊的変更の移行を開始できます。

    • サービスラッパー

    すべてのサービスクライアントラッパーを github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/service/* から各サービスパッケージに移動します。

    以下の例では、achievement サービスと iam サービスを移動しています。このパターンは他のサービスにも適用されます。

    // 1. before (achievement package)
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/service/achievement"
    var achievementSvc = achievement.AchievementsService{}

    // 1. after (achievement package)
    import "github.com/AccelByte/accelbyte-go-modular-sdk/achievement-sdk/pkg"
    var achievementSvc = achievement.AchievementsService{}

    // 2. before (iam package)
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/service/iam"
    var iamSvc = iam.OAuth20Service{}

    // 2. after (iam package)
    import "github.com/AccelByte/accelbyte-go-modular-sdk/iam-sdk/pkg"
    var iamSvc = iam.OAuth20Service{}
    • サービスファクトリー

    パッケージ内のすべてのクライアントファクトリーを github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/factory/* から、それぞれ対応する各サービス SDK パッケージに移動します。

    以下の例では、achievement サービスと iam サービスを移動しています。このパターンは他のサービスにも適用されます。

    // Before: factory package containing all client factory
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/factory"
    var achievementCli = factory.NewAchievementClient(config)
    var iamCli = factory.NewIamClient(config)

    // After: client factory reside in each service module
    import "github.com/AccelByte/accelbyte-go-modular-sdk/iam-sdk/pkg"
    import "github.com/AccelByte/accelbyte-go-modular-sdk/achievement-sdk/pkg"
    var achievementCli = achievement.NewAchievementClient(config)
    var iamCli = iam.NewIamClient(config)
    • ローカルトークンバリデーター

    認証用のローカルトークンバリデーターを使用している場合、これはすでに github.com/AccelByte/accelbyte-go-sdkservices-api/pkg/utils/auth/validator から github.com/AccelByte/accelbyte-go-sdk/iam-sdk/pkg に移動されています。

    コード例:

    // Before
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/utils/auth/validator"
    var tokenValidator = validator.NewTokenValidator(...)

    // After
    import "github.com/AccelByte/accelbyte-go-modular-sdk/iam-sdk/pkg"
    var tokenValidator = iam.NewTokenValidator(...)
    • リフレッシュトークンスケジューラー

    ファイルを github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/utils/auth から github.com/AccelByte/accelbyte-go-sdk/iam-sdk/pkg に移動します。これは iam.OAuth20Service の内部でのみ使用される場合がある点に注意してください。

    コード例:

    // Before
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/utils/auth"
    auth.RefreshTokenScheduler(session, loginType)

    // After
    import "github.com/AccelByte/accelbyte-go-modular-sdk/iam-sdk/pkg"
    iam.NewRefreshTokenSchedulerImpl().Start(session, loginType)

    最後に、以下のコマンドを実行して整理し、必要な依存関係を解決します。

    go mod tidy