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

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

Last updated on February 4, 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. 互換性モジュールの使用

    互換性モジュールには、以前の非モジュラー SDK からモジュラー SDK へのスムーズな移行を可能にする後方互換性レイヤーがあるため、これらのモジュールを適用した後は何もする必要がありません。

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

    go mod tidy

    コマンドを実行すると、Go Modular SDK を使用するようになりますが、まだ後方互換性レイヤーモジュールを使用しているため、Go ビルドタグを使用する必要があります。Go ビルドタグは、ビルドに含める Go 互換性モジュールを指定するために使用されます。

次の例では、AccelByte の achievementiam モジュールを使用しているため、compat_achievementcompat_iam タグを含めます。

go build -tags compat_achievement,compat_iam .

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

タグ説明
compatすべての AccelByte サービスモジュールを含める(非モジュラーと同様)
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/* から各サービスパッケージに移動します。

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

    // 1. 変更前(achievement パッケージ)
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/service/achievement"
    var achievementSvc = achievement.AchievementsService{}

    // 1. 変更後(achievement パッケージ)
    import "github.com/AccelByte/accelbyte-go-modular-sdk/achievement-sdk/pkg"
    var achievementSvc = achievement.AchievementsService{}

    // 2. 変更前(iam パッケージ)
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/service/iam"
    var iamSvc = iam.OAuth20Service{}

    // 2. 変更後(iam パッケージ)
    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 パッケージに移動します。

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

    // 変更前:すべてのクライアントファクトリーを含む factory パッケージ
    import "github.com/AccelByte/accelbyte-go-sdk/services-api/pkg/factory"
    var achievementCli = factory.NewAchievementClient(config)
    var iamCli = factory.NewIamClient(config)

    // 変更後:クライアントファクトリーは各サービスモジュールに存在
    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 に移動されています。

    コード例:

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

    // 変更後
    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 内部でのみ使用される可能性があることに注意してください。

    コード例:

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

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

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

    go mod tidy