Modular Extend SDK API 呼び出し応答の処理
注釈:本資料はAI技術を用いて翻訳されています。
概要
AccelByte Gaming Services(AGS)Modular Extend SDK を使用して、エンドポイントを呼び出すことで AGS を拡張できます。SDK は複数のプログラミング言語で利用可能です。
このガイドでは、Modular Extend SDK を使用して AGS エンドポイントを呼び出す際の API レスポンスオブジェクトの操作方法について説明します。
Go
このセクションでは、Go 用 Modular Extend SDK のセットアップ手順について説明します。
前提条件
この SDK には go 1.18 以降のバージョンが必要です。
SDK プロジェクトのインポート
SDK を使用するには、プロジェクトの go.mod ファイルを更新します。以下を置き換えます:
require (
github.com/AccelByte/accelbyte-go-sdk {VERSION}
)
次のように置き換えます:
require (
github.com/AccelByte/accelbyte-go-modular-sdk/{service}-sdk {VERSION}
)
必要なサービスのみをインポートしてください。次に、{VERSION} を希望のリリースバージョンに置き換えます。新しいプロジェクトを開始する場合は、最新のリリースバージョンを使用してください。
- その他の例については、GitHub の Samples フォルダを参照してください。
- 利用可能な Go Extend SDK モジュールのリストについては、Published Go Modules を参照してください。
環境変数
ConfigRepository を使用する場合、以下の環境変数を設定してください:
| 名前 | 必須 | 例 |
|---|---|---|
AB_BASE_URL | はい | https://test.accelbyte.io |
AB_CLIENT_ID | はい | abcdef0123456789abcdef0123456789 |
AB_CLIENT_SECRET | はい(機密性の高い AB_CLIENT_ID を使用する場合) | ab#c,d)ef(ab#c,d)ef(ab#c,d)ef(ab |
API 呼び出しレスポンスの処理
Modular Extend SDK のすべての操作は、レスポンスオブジェクトを返します。このオブジェクトを使用して、呼び出しが成功したかどうかを確認し、レスポンスデータまたはエラーオブジェクトのいずれかを取得できます。
response.IsSuccessは、呼び出しが成功した場合はtrueになります。それ以外の場合はfalseになります。response.Dataオブジェクトは、エンドポイントがレスポンスを持つかどうかに応じてオプションです。response.Error<status-code>には、呼び出しが失敗した場合のエラーオブジェクトが含まれます。それ以外の場合は null になります。response.Unpackは、エンドポイントから返されたすべてのレスポンスを返します。response.StatusCodeは、エンドポイントから返されたintステータスコードを返します。
既知のエラーは、各モジュールの errors.go で利用可能です。例: <module-name>-sdk/pkg/<module-name>clientmodels/errors.go
response, err := userProfileService.GetMyProfileInfoShort(input)
if response.Error400 != nil {
// 何かを実行
} else {
ok := response.Data
// 何かを実行
response.Unpack // 戻り値で何かを実行
}
Python
このセクションでは、Python 用 Modular Extend SDK のセットアップ手順について説明します。
前提条件
この SDK には Python 3.9 以降が必要です。
Pip でインストール
-
コアパッケージをインストールします:
pip install accelbyte-py-sdk-core -
必要なサービスをインストールします:
pip install accelbyte-py-sdk-service-achievement
pip install accelbyte-py-sdk-service-ams
pip install accelbyte-py-sdk-service-basic
pip install accelbyte-py-sdk-service-cloudsave
pip install accelbyte-py-sdk-service-dslogmanager
pip install accelbyte-py-sdk-service-dsmc
pip install accelbyte-py-sdk-service-gametelemetry
pip install accelbyte-py-sdk-service-gdpr
pip install accelbyte-py-sdk-service-iam
pip install accelbyte-py-sdk-service-leaderboard
pip install accelbyte-py-sdk-service-legal
pip install accelbyte-py-sdk-service-lobby
pip install accelbyte-py-sdk-service-match2
pip install accelbyte-py-sdk-service-matchmaking
pip install accelbyte-py-sdk-service-platform
pip install accelbyte-py-sdk-service-qosm
pip install accelbyte-py-sdk-service-reporting
pip install accelbyte-py-sdk-service-seasonpass
pip install accelbyte-py-sdk-service-session
pip install accelbyte-py-sdk-service-sessionbrowser
pip install accelbyte-py-sdk-service-social
pip install accelbyte-py-sdk-service-ugc -
必要に応じて、追加機能をインストールします:
pip install accelbyte-py-sdk-feat-auth
pip install accelbyte-py-sdk-feat-token-validationまたはすべての機能をインストールします。
pip install accelbyte-py-sdk-all
環境変数
EnvironmentConfigRepository(デフォルト)を使用する場合、以下の環境変数を設定してください:
| 名前 | 必須 | 例 |
|---|---|---|
AB_BASE_URL | はい | https://test.accelbyte.io |
AB_CLIENT_ID | はい | abcdef0123456789abcdef0123456789 |
AB_CLIENT_SECRET | はい(プライベート AB_CLIENT_ID を使用する場合) | ab#c,d)ef(ab#c,d)ef(ab#c,d)ef(ab |
AB_NAMESPACE | はい。SDK は {namespace} パスパラメータを自動的に埋めます(上書き可能) | accelbyte |
AB_APP_NAME | いいえ。SDK は User-Agent ヘッダーを自動的に埋めます(上書き可能) | MyApp |
AB_APP_VERSION | いいえ。SDK は User-Agent ヘッダーを自動的に埋めます(上書き可能) | 1.0.0 |
API 呼び出しレスポンスの処理
すべての操作とそのラッパー関数は、操作に固有の ApiResponse サブクラスのインスタンスを返すようになりました。
from accelbyte_py_sdk.api.iam import public_create_user_v3
def main():
# ラッパー 'public_create_user_v3' は、
# `PublicCreateUserV3` 操作をラップします。これは、
# `ApiResponse` のサブクラスである
# `PublicCreateUserV3.Response` のインスタンスを返します。
#
# クラス `PublicCreateUserV3.Response` は、
# '__iter__' ダンダーメソッドも実装しており、
# `result, error` にアンパックして
# 以前の構文を維持できます。
#
# class PublicCreateUserV3(Operation):
# class Response(ApiResponse):
# def __iter__(self):
# yield data
# yield error
response = public_create_user_v3(...)
result, error = response
if error:
exit(1)
if __name__ == "__main__":
main()
ApiResponse オブジェクトの ok() メソッドを使用して、レスポンスが成功しなかった場合に Exception を発生させることもできます。
from accelbyte_py_sdk.api.iam import public_create_user_v3
def main():
response = public_create_user_v3(...).ok()
# または
# result, error = public_create_user_v3(...).ok()
if __name__ == "__main__":
main()
ApiResponse オブジェクトからのエラーをサービス内の既知のエラーと比較することもできます。
from accelbyte_py_sdk.api.iam import public_create_user_v3
from accelbyte_py_sdk.api.iam.errors import ERROR_10153, ERROR_10154 # IAM サービスの既知のエラー
def main():
response = public_create_user_v3(...)
if response.error:
# エラーコードを取得
error_code = response.error.code
# エラーメッセージを取得
error_message = response.error.message
# コードに応じてエラーを処理
# - ERROR_10153 = ApiError(code="10153", message="user exist")
# - ERROR_10154 = ApiError(code="10154", message="country not found")
if response.error.code == ERROR_10153.code:
do_something()
elif response.error.code == ERROR_10154.code:
do_something_else()
# 例外を発生させる
raise response.error.to_exception()
if __name__ == "__main__":
main()
Java
このセクションでは、Java 用 Modular Extend SDK のセットアップ手順について説明します。
前提条件
この SDK は JDK 8 と Gradle 7.5 を使用して開発されています。
Gradle 構成
gradle.build ファイルに以下を追加します。{VERSION} を releases のリリースバージョンタグに置き換えてください。先頭の v 文字は除きます。
repositories {
mavenCentral()
}
dependencies {
...
implementation 'net.accelbyte.sdk:module-iam:{VERSION}'
}
module-iam は AGS を使用するために必要な最小限の依存関係です。これは AGS IAM サービスをラップする SDK です。詳細については、GitHub の Samples フォルダを参照してください。
環境変数
DefaultConfigRepository を使用する場合、以下の環境変数を設定してください:
| 名前 | 必須 | 例 |
|---|---|---|
AB_BASE_URL | はい | https://test.accelbyte.io |
AB_CLIENT_ID | はい | abcdef0123456789abcdef0123456789 |
AB_CLIENT_SECRET | はい(機密性の高い AB_CLIENT_ID を使用する場合) | ab#c,d)ef(ab#c,d)ef(ab#c,d)ef(ab |
API 呼び出しレスポンスの処理
Java 用 Modular Extend SDK のすべての操作は、レスポンスオブジェクトを返します。このオブジェクトを使用して、呼び出しが成功したかどうかを確認し、レスポンスデータまたはエラーオブジェクトのいずれかを取得できます。
isSuccess()ゲッターメソッドは、呼び出しが成功した場合はtrueになります。それ以外の場合はfalseになります。getData()ゲッターメソッドには、サービスからのレスポンスデータが含まれます。このプロパティは、エンドポイントがレスポンスを持つかどうかに応じてオプションです。getError()ゲッターメソッドには、呼び出しが失敗した場合のエラーオブジェクトが含まれます。それ以外の場合は null になります。
既知のエラーは、<ServiceName>Errors 静的クラスで利用可能です。例: BasicErrors、IamErrors など。
UserProfile userProfile = new UserProfile(sdk);
GetMyProfileInfoOpResponse response = userProfile.getMyProfileInfo(new GetMyProfileInfo("accelbyte"));
if (response.isSuccess())
{
// レスポンスデータで何かを実行
}
else
{
// レスポンスエラーオブジェクトで何かを実行
// エラーコードを取得
String errorCode = response.getError().getCode();
// エラーメッセージを取得
String errorMessage = response.getError().getMessage();
// または例外をスロー
response.getError().throwException();
// 既知のエラーと比較してより具体的なエラーを処理
if (response.getError().isEqualWith(BasicErrors.error11440))
{
// ユーザープロファイルが見つからない場合に何かを実行
}
}
C#
このセクションでは、C# 用 Modular Extend SDK のセットアップ手順について説明します。
前提条件
この SDK には .NET 8.0 SDK が必要です。
必要なパッケージのインストール
# AccelByte C# Extend SDK を使用するには、常にこれらのパッケージを含める
$ dotnet add package AccelByte.Sdk.Abstractions
$ dotnet add package AccelByte.Sdk.Core
# AGS への認証またはトークン検証を行うには、このパッケージを含める
$ dotnet add package AccelByte.Sdk.Authentication
# オプション機能パッケージ
$ dotnet add package AccelByte.Sdk.Feature.AutoRefreshToken
$ dotnet add package AccelByte.Sdk.Feature.LocalTokenValidation
# API パッケージ。必要に応じて 1 つ以上のパッケージを含めることができます。
$ dotnet add package AccelByte.Sdk.Api.<ApiName>
# 互換性レイヤー。このパッケージを使用して、モノリシック SDK バージョンとの互換性レイヤーを有効にします。
$ dotnet add package AccelByte.Sdk.Api.Compat
API パッケージの完全なリストは GitHub で確認できます。
環境変数
DefaultConfigRepository を使用する場合、以下の環境変数を設定する必要があります。
| 名前 | 必須 | 例 |
|---|---|---|
AB_BASE_URL | はい | https://test.accelbyte.io |
AB_CLIENT_ID | はい | abcdef0123456789abcdef0123456789 |
AB_CLIENT_SECRET | はい(プライベート AB_CLIENT_ID を使用する場合) | ab#c,d)ef(ab#c,d)ef(ab#c,d)ef(ab |
AB_NAMESPACE | はい | accelbyte |
API 呼び出しレスポンスの処理
Modular Extend SDK のすべての操作は、レスポンスオブジェクトを返します。このオブジェクトを使用して、呼び出しが成功したかどうかを確認し、レスポンスデータまたはエラーオブジェクトのいずれかを取得できます。
IsSuccessプロパティは、呼び出しが成功した場合はtrueになります。それ以外の場合はfalseになります。Dataプロパティには、サービスからのレスポンスデータが含まれます。このプロパティは、エンドポイントがレスポンスを持つかどうかに応じてオプションです。Errorプロパティには、呼び出しが失敗した場合のエラーオブジェクトが含まれます。それ以外の場合は null になります。
既知のエラーは、<ServiceName>Errors 静的クラスで利用可能です。例: BasicErrors、IamErrors など。
var response = sdk.GetBasicApi().UserProfile.GetMyProfileInfoOp.Execute(sdk.Namespace);
if (response.IsSuccess)
{
// response.Data で何かを実行
}
else
{
// response.Error で何かを実行
// エラーコードを取得
string errorCode = response.Error.Code;
// エラーメッセージを取得
string errorMessage = response.Error.Message;
// または例外をスロー
response.Error.ThrowException();
// 既知のエラーと比較してより具体的なエラーを処理
if (response.Error == BasicErrors.Error11440)
{
// ユーザープロファイルが見つからない場合に何かを実行
}
}
EnsureSuccess() メソッドを使用して、レスポンスオブジェクトのデフォルトのエラーと null チェックを行う省略表記として使用できます。このメソッドは、エンドポイントがレスポンスを持つ場合、レスポンスデータを直接返します。
UserProfilePrivateInfo profileData = sdk.GetBasicApi().UserProfile.GetMyProfileInfoOp
.Execute(sdk.Namespace)
.EnsureSuccess();