GS2-Distributor SDK API リファレンス
モデル
Namespace
ネームスペース
ネームスペースは、一つのプロジェクト内で同じサービスを異なる用途で複数利用するためのエンティティです。
GS2 の各サービスはネームスペース単位で管理されます。ネームスペースが異なれば、同じサービスでも完全に独立したデータ空間として扱われます。
そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceId | string | ※ | ~ 1024文字 | ネームスペース
GRN ※ サーバーが自動で設定 | ||
| name | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| description | string | ~ 1024文字 | 説明文 | |||
| transactionSetting | TransactionSetting | トランザクション設定 リソース配布処理時の分散トランザクションの実行方法を制御する設定です。自動実行、アトミックコミット、非同期処理などのオプションをサポートします。 | ||||
| assumeUserId | string | ~ 1024文字 | GS2-Identifier ユーザー GRN | |||
| autoRunStampSheetNotification | NotificationSetting | ✓ | トランザクションの自動実行が完了したときのプッシュ通知(旧仕様) トランザクションがサーバーサイドで自動実行完了した際に GS2-Gateway 経由でプッシュ通知を送信するための設定です。これは旧仕様であり、新仕様では autoRunTransactionNotification を使用してください。 | |||
| autoRunTransactionNotification | NotificationSetting | ✓ | トランザクションの自動実行が完了したときのプッシュ通知 分散トランザクションがサーバーサイドで自動実行完了した際に GS2-Gateway 経由でプッシュ通知を送信するための設定です。トランザクション結果をクライアントに通知し、ローカル状態を適切に更新できるようにします。 | |||
| logSetting | LogSetting | ログの出力設定 ディストリビューター操作のログデータを GS2-Log に出力するための設定です。GS2-Log のネームスペースを指定することで、リソース配布・入手アクション実行・トランザクション処理の API リクエスト・レスポンスログを収集できます。 | ||||
| createdAt | long | ※ | 現在時刻 | 作成日時 UNIX 時間・ミリ秒 ※ サーバーが自動で設定 | ||
| updatedAt | long | ※ | 現在時刻 | 最終更新日時 UNIX 時間・ミリ秒 ※ サーバーが自動で設定 | ||
| revision | long | 0 | 0 ~ 9223372036854775805 | リビジョン |
TransactionSetting
トランザクション設定
トランザクション設定は、トランザクションの実行方法・整合性・非同期処理・競合回避の仕組みを制御する設定です。
自動実行(AutoRun)、アトミック実行(AtomicCommit)、GS2-Distributor を利用した非同期実行、スクリプト結果の一括適用、GS2-JobQueue による入手アクションの非同期化などを組み合わせ、ゲームロジックに応じた堅牢なトランザクション管理を可能にします。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| enableAutoRun | bool | false | 発行したトランザクションをサーバーサイドで自動的に実行するか | |||
| enableAtomicCommit | bool | {enableAutoRun} == true | false | トランザクションの実行をアトミックにコミットするか ※ enableAutoRun が true であれば 有効 | ||
| transactionUseDistributor | bool | {enableAtomicCommit} == true | false | トランザクションを非同期処理で実行する ※ enableAtomicCommit が true であれば 有効 | ||
| commitScriptResultInUseDistributor | bool | {transactionUseDistributor} == true | false | スクリプトの結果コミット処理を非同期処理で実行するか ※ transactionUseDistributor が true であれば 有効 | ||
| acquireActionUseJobQueue | bool | {enableAtomicCommit} == true | false | 入手アクションを実行する際に GS2-JobQueue を使用するか ※ enableAtomicCommit が true であれば 有効 | ||
| distributorNamespaceId | string | “grn:gs2:{region}:{ownerId}:distributor:default” | ~ 1024文字 | トランザクションの実行に使用する GS2-Distributor ネームスペース GRN | ||
| queueNamespaceId | string | “grn:gs2:{region}:{ownerId}:queue:default” | ~ 1024文字 | トランザクションの実行に使用する GS2-JobQueue のネームスペース GRN |
NotificationSetting
プッシュ通知に関する設定
GS2 のマイクロサービス内で何らかのイベントが発生した際に、プッシュ通知を送信するための設定です。
ここでいうプッシュ通知は GS2-Gateway の提供する WebSocket インターフェースを経由した処理であり、スマートフォンのプッシュ通知とは性質が異なります。
たとえば、マッチメイキングが完了した時やフレンドリクエストが届いた時など、ゲームクライアントの操作とは関係なく状態が変化した際に GS2-Gateway を経由してプッシュ通知をすることで、ゲームクライアントは状態の変化を検知することができます。
GS2-Gateway のプッシュ通知は通知先のデバイスがオフラインだった時に追加の処理としてモバイルプッシュ通知を送信できます。
モバイルプッシュ通知をうまく利用すれば、マッチメイキング中にゲームを終了しても、モバイルプッシュ通知を使用してプレイヤーに通知し、ゲームに戻ってくるフローを実現できる可能性があります。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gatewayNamespaceId | string | “grn:gs2:{region}:{ownerId}:gateway:default” | ~ 1024文字 | プッシュ通知に使用する GS2-Gateway のネームスペース 「grn:gs2:」から始まる GRN 形式で GS2-Gateway のネームスペースIDを指定します。 | ||||||||
| enableTransferMobileNotification | bool? | false | モバイルプッシュ通知へ転送するか この通知を送信しようとした時、通知先のデバイスがオフラインだった場合、モバイルプッシュ通知へ転送するかどうかを指定します。 | |||||||||
| sound | string | {enableTransferMobileNotification} == true | ~ 1024文字 | モバイルプッシュ通知で使用するサウンドファイル名 ここで指定したサウンドファイル名は、モバイルプッシュ通知を送信する際に使用され、特別なサウンドで通知を出すことができます。 ※ enableTransferMobileNotification が true であれば 有効 | ||||||||
| enable | 文字列列挙型 enum { “Enabled”, “Disabled” } | “Enabled” | プッシュ通知を有効にするか
|
LogSetting
ログの出力設定
ログデータの出力設定を管理します。この型は、ログデータを書き出すために使用されるログネームスペースの識別子(Namespace ID)を保持します。
ログネームスペースIDは、ログデータを集約し、保存する対象の GS2-Log のネームスペースを指定します。
この設定を通じて、このネームスペース以下のAPIリクエスト・レスポンスログデータが対象の GS2-Log へ出力されるようになります。
GS2-Log にはリアルタイムでログが提供され、システムの監視や分析、デバッグなどに利用できます。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| loggingNamespaceId | string | ✓ | ~ 1024文字 | ログを出力する GS2-Log のネームスペース
GRN 「grn:gs2:」ではじまる GRN 形式のIDで指定する必要があります。 |
GitHubCheckoutSetting
GitHubからマスターデータをチェックアウトする設定
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| apiKeyId | string | ✓ | ~ 1024文字 | GitHub APIキーの GRN | ||||||||||
| repositoryName | string | ✓ | ~ 1024文字 | リポジトリ名 | ||||||||||
| sourcePath | string | ✓ | ~ 1024文字 | マスターデータ(JSON)ファイルのパス | ||||||||||
| referenceType | 文字列列挙型 enum { “commit_hash”, “branch”, “tag” } | ✓ | コードの取得元
| |||||||||||
| commitHash | string | {referenceType} == “commit_hash” | ✓※ | ~ 1024文字 | コミットハッシュ ※ referenceType が “commit_hash” であれば 必須 | |||||||||
| branchName | string | {referenceType} == “branch” | ✓※ | ~ 1024文字 | ブランチ名 ※ referenceType が “branch” であれば 必須 | |||||||||
| tagName | string | {referenceType} == “tag” | ✓※ | ~ 1024文字 | タグ名 ※ referenceType が “tag” であれば 必須 |
StampSheetResult
トランザクション実行結果(レガシー)
サーバーサイドの自動実行で処理されたトランザクションの実行結果を記録します。
各フェーズのリクエスト内容とレスポンス結果を含みます:検証アクション(事前条件チェック)、消費アクション、入手アクション。エラー検出とリトライロジックのために HTTP ステータスコードも追跡します。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| stampSheetResultId | string | ※ | ~ 1024文字 | トランザクション実行結果
GRN ※ サーバーが自動で設定 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID このトランザクションを一意に識別する UUID です。トランザクションとその実行結果、および連鎖する後続トランザクションの関連付けに使用されます。 | ||
| verifyTaskRequests | List<VerifyAction> | 0 ~ 100 items | 検証アクションのリクエスト内容 | |||
| taskRequests | List<ConsumeAction> | 0 ~ 100 items | 消費アクションのリクエスト内容 | |||
| sheetRequest | AcquireAction | ✓ | 入手アクションのリクエスト内容 | |||
| verifyTaskResultCodes | List<int> | [] | 0 ~ 100 items | 検証アクションの実行ステータスコード | ||
| verifyTaskResults | List<string> | [] | 0 ~ 100 items | 検証アクションの実行結果 | ||
| taskResultCodes | List<int> | [] | 0 ~ 100 items | 消費アクションの実行ステータスコード | ||
| taskResults | List<string> | [] | 0 ~ 100 items | 消費アクションの実行結果 | ||
| sheetResultCode | int | 0 ~ 999 | 入手アクションの実行ステータスコード | |||
| sheetResult | string | ~ 1048576文字 | 入手アクションの実行結果レスポンス内容 | |||
| nextTransactionId | string | 36 ~ 36文字 | トランザクションの実行によって、新しく発行されたトランザクションのトランザクションID 入手アクションの結果に新しいトランザクション ID が含まれている場合、ここに抽出・格納されます。これにより、あるトランザクションの完了が別のトランザクションをトリガーするトランザクションチェーンが可能になります。 | |||
| createdAt | long | ※ | 現在時刻 | 作成日時 UNIX 時間・ミリ秒 ※ サーバーが自動で設定 | ||
| revision | long | 0 | 0 ~ 9223372036854775805 | リビジョン |
TransactionResult
トランザクション実行結果
サーバーサイドの自動実行で処理された分散トランザクションの実行結果を記録します。
各フェーズの構造化された結果を含みます:検証アクション(事前条件チェック)、消費アクション(リソース消費)、入手アクション(リソース付与)。各アクション結果にはリクエスト、HTTP ステータスコード、レスポンスペイロードが含まれます。ステータスコード(非2xx)によるエラー検出と、コンフリクト(409)やサーバーエラー(5xx)でのリトライがサポートされます。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| transactionResultId | string | ※ | ~ 1024文字 | トランザクション実行結果
GRN ※ サーバーが自動で設定 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID この分散トランザクションを一意に識別する UUID です。実行結果の検索や、元の API リクエストとの関連付けに使用されます。 | ||
| verifyResults | List<VerifyActionResult> | 0 ~ 100 items | 検証アクションの実行結果リスト | |||
| consumeResults | List<ConsumeActionResult> | 0 ~ 100 items | 消費アクションの実行結果リスト | |||
| acquireResults | List<AcquireActionResult> | 0 ~ 100 items | 入手アクションの実行結果リスト | |||
| hasError | bool | false | トランザクション実行中にエラーが発生したかどうか いずれかのアクション(検証・消費・入手)が非2xxのステータスコードを返した場合に true に設定されます。true の場合、クライアントは個々のアクション結果を調査して失敗原因を特定する必要があります。 | |||
| createdAt | long | ※ | 現在時刻 | 作成日時 UNIX 時間・ミリ秒 ※ サーバーが自動で設定 | ||
| revision | long | 0 | 0 ~ 9223372036854775805 | リビジョン |
DistributorModel
配信モデル
配信モデルとはエンティティの入手時に所持枠を超えて入手した時のポリシーを設定するエンティティです。
GS2-Distributor を通して入手処理を行うことで、あふれたリソースを GS2-Inbox のメッセージとして転送することができます。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| distributorModelId | string | ※ | ~ 1024文字 | 配信モデル
GRN ※ サーバーが自動で設定 | ||
| name | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| metadata | string | ~ 2048文字 | メタデータ メタデータには任意の値を設定できます。 これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 | |||
| inboxNamespaceId | string | ~ 1024文字 | あふれたリソースを転送する GS2-Inbox のネームスペース
GRN リソースの入手がプレイヤーの所持枠を超えた場合、あふれたリソースは指定された GS2-Inbox ネームスペースにメッセージとして転送されます。プレイヤーは後から受信箱からリソースを受け取ることができます。 | |||
| whiteListTargetIds | List<string> | [] | 0 ~ 1000 items | GS2-Distributorを通して処理出来る対象のリソースGRNのホワイトリスト この配信モデルを使用して入手処理を行える対象となるリソースのGRNプレフィックスを指定します。 |
BatchRequestPayload
API一括実行リクエスト
一括実行内の単一の API リクエストを表します。複数のバッチリクエストペイロードをまとめて送信することで、複数の GS2 API 呼び出しを1回のラウンドトリップで実行でき、ネットワークオーバーヘッドとレイテンシーを削減できます。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| requestId | string | ✓ | ~ 128文字 | リクエストID バッチ内でこのリクエストに対してクライアントが割り当てた識別子です。バッチレスポンス内で各リクエストと対応する結果を関連付けるために使用されます。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| service | 文字列列挙型 enum { “account”, “adReward”, “auth”, “buff”, “chat”, “datastore”, “deploy”, “dictionary”, “distributor”, “enchant”, “enhance”, “exchange”, “experience”, “formation”, “friend”, “gateway”, “grade”, “guard”, “guild”, “identifier”, “idle”, “inbox”, “inventory”, “jobQueue”, “key”, “limit”, “lock”, “log”, “loginReward”, “lottery”, “matchmaking”, “megaField”, “mission”, “money”, “money2”, “news”, “quest”, “ranking”, “ranking2”, “realtime”, “schedule”, “script”, “seasonRating”, “serialKey”, “showcase”, “skillTree”, “stamina”, “stateMachine”, “version” } | ✓ | マイクロサービス名 呼び出す GS2 マイクロサービス名です(例: “inventory”、“experience”、“money”)。この API リクエストを受信するサービスエンドポイントを決定します。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| methodName | string | ✓ | ~ 128文字 | メソッド名 対象サービスで呼び出す API メソッド名です(例: “describeNamespaces”、“getInventory”)。指定されたサービスの有効な API メソッドと一致する必要があります。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| parameter | string | ✓ | ~ 10240文字 | パラメータ API メソッドの JSON シリアライズされたリクエストパラメータです。指定されたサービスメソッドのリクエストスキーマに準拠する必要があります。 |
BatchResultPayload
API一括実行結果
一括実行内の単一の API リクエストの結果を表します。各結果はリクエスト ID によって元のリクエストと関連付けられ、HTTP ステータスコードと JSON レスポンスペイロードを含みます。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| requestId | string | ✓ | ~ 128文字 | リクエストID 対応するバッチリクエストと一致するクライアント割り当て識別子です。この結果を元のリクエストと関連付けるために使用されます。 | ||
| statusCode | int | ✓ | 100 ~ 1000 | ステータスコード このバッチリクエストに対して GS2 API が返した HTTP ステータスコードです。2xx は成功、4xx はクライアントエラー、5xx はサーバーエラーを示します。 | ||
| resultPayload | string | ✓ | ~ 10240文字 | レスポンス このバッチリクエストに対して GS2 API が返した JSON レスポンスボディです。API メソッドのレスポンスデータまたはエラー詳細を含みます。 |
AcquireAction
入手アクション
分散トランザクション内のリソース入手操作を表します。プレイヤーにリソース(アイテム、通貨、経験値など)を付与する入手アクションに対応します。GS2 API のアクション識別子と JSON シリアライズされたリクエストパラメータを含みます。
詳細
ConsumeAction
消費アクション
分散トランザクション内のリソース消費操作を表します。プレイヤーからリソース(アイテム、通貨、スタミナなど)を消費する消費アクションに対応します。消費アクションは入手アクションの前に実行され、プレイヤーが必要なコストを満たしていることを確認します。
詳細
VerifyAction
検証アクション
分散トランザクション内の事前条件検証操作を表します。消費・入手アクションの前に実行され、条件が満たされていることを検証します(例:所持枠の確認、クエスト完了状態の検証など)。いずれかの検証アクションが失敗した場合、トランザクション全体が中止されます。
詳細
AcquireActionResult
入手アクションの実行結果
単一の入手アクション実行の結果を記録します。アクション識別子、元のリクエスト、成功・失敗を示す HTTP ステータスコード、GS2 API からの JSON レスポンスペイロードを含みます。
詳細
ConsumeActionResult
消費アクションの実行結果
単一の消費アクション実行の結果を記録します。アクション識別子、元のリクエスト、成功・失敗を示す HTTP ステータスコード、GS2 API からの JSON レスポンスペイロードを含みます。
詳細
VerifyActionResult
検証アクションの実行結果
単一の検証アクション実行の結果を記録します。アクション識別子、元のリクエスト、成功・失敗を示す HTTP ステータスコード、GS2 API からの JSON レスポンスペイロードを含みます。
詳細
Config
コンフィグ設定
トランザクションの変数に適用する設定値
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| key | string | ✓ | ~ 64文字 | 名前 | ||
| value | string | ~ 51200文字 | 値 |
DistributeResource
リソース配布
入手アクションとそのリクエストパラメータで構成される単一のリソース配布操作を表します。プレイヤーにリソースを配布する際に、どの GS2 API アクションをどのパラメータで実行するかを指定するために使用されます。
詳細
CurrentDistributorMaster
現在アクティブな配信モデルのマスターデータ
現在ネームスペース内で有効な、配信モデルの定義を記述したマスターデータです。
GS2ではマスターデータの管理にJSON形式のファイルを使用します。
ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。
JSONファイルを作成する方法として、マネージメントコンソール内にマスターデータエディタを提供しています。
また、よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。
Note
JSONファイルの形式については GS2-Distributor マスターデータリファレンス をご参照ください。詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceId | string | ※ | ~ 1024文字 | ネームスペース
GRN ※ サーバーが自動で設定 | ||
| settings | string | ✓ | ~ 5242880 バイト (5MB) | マスターデータ |
DistributorModelMaster
配信モデルマスター
配信モデルマスターは、ゲーム内で使用される配信モデルの編集・管理用データで、マネージメントコンソールのマスターデータエディタで一時的に保持されます。
インポート・更新処理を行うことで、実際にゲームから参照される配信モデルとして反映されます。
配信モデルとはエンティティの入手時に所持枠を超えて入手した時のポリシーを設定するエンティティです。
GS2-Distributor を通して入手処理を行うことで、あふれたリソースを GS2-Inbox のメッセージとして転送することができます。
詳細
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| distributorModelId | string | ※ | ~ 1024文字 | 配信モデルマスター
GRN ※ サーバーが自動で設定 | ||
| name | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| description | string | ~ 1024文字 | 説明文 | |||
| metadata | string | ~ 2048文字 | メタデータ メタデータには任意の値を設定できます。 これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 | |||
| inboxNamespaceId | string | ~ 1024文字 | あふれたリソースを転送する GS2-Inbox のネームスペース
GRN リソースの入手がプレイヤーの所持枠を超えた場合、あふれたリソースは指定された GS2-Inbox ネームスペースにメッセージとして転送されます。プレイヤーは後から受信箱からリソースを受け取ることができます。 | |||
| whiteListTargetIds | List<string> | [] | 0 ~ 1000 items | GS2-Distributorを通して処理出来る対象のリソースGRNのホワイトリスト この配信モデルを使用して入手処理を行える対象となるリソースのGRNプレフィックスを指定します。 | ||
| createdAt | long | ※ | 現在時刻 | 作成日時 UNIX 時間・ミリ秒 ※ サーバーが自動で設定 | ||
| updatedAt | long | ※ | 現在時刻 | 最終更新日時 UNIX 時間・ミリ秒 ※ サーバーが自動で設定 | ||
| revision | long | 0 | 0 ~ 9223372036854775805 | リビジョン |
メソッド
describeNamespaces
ネームスペースの一覧を取得
プロジェクト内において、サービス単位で作成されたネームスペースの一覧を取得します。
オプションのページトークンを使用して、リストの特定の位置からデータの取得を開始できます。
また、取得するネームスペースの数を制限することも可能です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namePrefix | string | ~ 64文字 | ネームスペース名のフィルター接頭辞 | |||
| pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | |||
| limit | int | 30 | 1 ~ 1000 | データの取得件数 |
Result
| 型 | 説明 | |
|---|---|---|
| items | List<Namespace> | ネームスペースのリスト |
| nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.DescribeNamespaces(
&distributor.DescribeNamespacesRequest {
NamePrefix: nil,
PageToken: nil,
Limit: nil,
}
)
if err != nil {
panic("error occurred")
}
items := result.Items
nextPageToken := result.NextPageTokenuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\DescribeNamespacesRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->describeNamespaces(
(new DescribeNamespacesRequest())
->withNamePrefix(null)
->withPageToken(null)
->withLimit(null)
);
$items = $result->getItems();
$nextPageToken = $result->getNextPageToken();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.DescribeNamespacesRequest;
import io.gs2.distributor.result.DescribeNamespacesResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
DescribeNamespacesResult result = client.describeNamespaces(
new DescribeNamespacesRequest()
.withNamePrefix(null)
.withPageToken(null)
.withLimit(null)
);
List<Namespace> items = result.getItems();
String nextPageToken = result.getNextPageToken();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.DescribeNamespacesResult> asyncResult = null;
yield return client.DescribeNamespaces(
new Gs2.Gs2Distributor.Request.DescribeNamespacesRequest()
.WithNamePrefix(null)
.WithPageToken(null)
.WithLimit(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var items = result.Items;
var nextPageToken = result.NextPageToken;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.describeNamespaces(
new Gs2Distributor.DescribeNamespacesRequest()
.withNamePrefix(null)
.withPageToken(null)
.withLimit(null)
);
const items = result.getItems();
const nextPageToken = result.getNextPageToken();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.describe_namespaces(
distributor.DescribeNamespacesRequest()
.with_name_prefix(None)
.with_page_token(None)
.with_limit(None)
)
items = result.items
next_page_token = result.next_page_token
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.describe_namespaces({
namePrefix=nil,
pageToken=nil,
limit=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
items = result.items;
nextPageToken = result.nextPageToken;client = gs2('distributor')
api_result_handler = client.describe_namespaces_async({
namePrefix=nil,
pageToken=nil,
limit=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
items = result.items;
nextPageToken = result.nextPageToken;createNamespace
ネームスペースを新規作成
ネームスペースの名前、説明、および各種設定を含む詳細情報を指定する必要があります。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| name | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| description | string | ~ 1024文字 | 説明文 | |||
| transactionSetting | TransactionSetting | トランザクション設定 リソース配布処理時の分散トランザクションの実行方法を制御する設定です。自動実行、アトミックコミット、非同期処理などのオプションをサポートします。 | ||||
| assumeUserId | string | ~ 1024文字 | GS2-Identifier ユーザー GRN | |||
| autoRunStampSheetNotification | NotificationSetting | ✓ | トランザクションの自動実行が完了したときのプッシュ通知(旧仕様) トランザクションがサーバーサイドで自動実行完了した際に GS2-Gateway 経由でプッシュ通知を送信するための設定です。これは旧仕様であり、新仕様では autoRunTransactionNotification を使用してください。 | |||
| autoRunTransactionNotification | NotificationSetting | ✓ | トランザクションの自動実行が完了したときのプッシュ通知 分散トランザクションがサーバーサイドで自動実行完了した際に GS2-Gateway 経由でプッシュ通知を送信するための設定です。トランザクション結果をクライアントに通知し、ローカル状態を適切に更新できるようにします。 | |||
| logSetting | LogSetting | ログの出力設定 ディストリビューター操作のログデータを GS2-Log に出力するための設定です。GS2-Log のネームスペースを指定することで、リソース配布・入手アクション実行・トランザクション処理の API リクエスト・レスポンスログを収集できます。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | Namespace | 作成したネームスペース |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.CreateNamespace(
&distributor.CreateNamespaceRequest {
Name: pointy.String("namespace-0001"),
Description: nil,
TransactionSetting: nil,
AssumeUserId: pointy.String("grn:gs2::YourOwnerId:identifier:user:user-0001"),
AutoRunStampSheetNotification: nil,
AutoRunTransactionNotification: nil,
LogSetting: &distributor.LogSetting{
LoggingNamespaceId: pointy.String("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"),
},
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\CreateNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->createNamespace(
(new CreateNamespaceRequest())
->withName("namespace-0001")
->withDescription(null)
->withTransactionSetting(null)
->withAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
->withAutoRunStampSheetNotification(null)
->withAutoRunTransactionNotification(null)
->withLogSetting((new \Gs2\Distributor\Model\LogSetting())
->withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"))
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.CreateNamespaceRequest;
import io.gs2.distributor.result.CreateNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
CreateNamespaceResult result = client.createNamespace(
new CreateNamespaceRequest()
.withName("namespace-0001")
.withDescription(null)
.withTransactionSetting(null)
.withAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
.withAutoRunStampSheetNotification(null)
.withAutoRunTransactionNotification(null)
.withLogSetting(new io.gs2.distributor.model.LogSetting()
.withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"))
);
Namespace item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.CreateNamespaceResult> asyncResult = null;
yield return client.CreateNamespace(
new Gs2.Gs2Distributor.Request.CreateNamespaceRequest()
.WithName("namespace-0001")
.WithDescription(null)
.WithTransactionSetting(null)
.WithAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
.WithAutoRunStampSheetNotification(null)
.WithAutoRunTransactionNotification(null)
.WithLogSetting(new Gs2.Gs2Distributor.Model.LogSetting()
.WithLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001")),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.createNamespace(
new Gs2Distributor.CreateNamespaceRequest()
.withName("namespace-0001")
.withDescription(null)
.withTransactionSetting(null)
.withAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
.withAutoRunStampSheetNotification(null)
.withAutoRunTransactionNotification(null)
.withLogSetting(new Gs2Distributor.model.LogSetting()
.withLoggingNamespaceId("grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001"))
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.create_namespace(
distributor.CreateNamespaceRequest()
.with_name('namespace-0001')
.with_description(None)
.with_transaction_setting(None)
.with_assume_user_id('grn:gs2::YourOwnerId:identifier:user:user-0001')
.with_auto_run_stamp_sheet_notification(None)
.with_auto_run_transaction_notification(None)
.with_log_setting(
distributor.LogSetting()
.with_logging_namespace_id('grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001'))
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.create_namespace({
name="namespace-0001",
description=nil,
transactionSetting=nil,
assumeUserId="grn:gs2::YourOwnerId:identifier:user:user-0001",
autoRunStampSheetNotification=nil,
autoRunTransactionNotification=nil,
logSetting={
loggingNamespaceId="grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001",
},
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.create_namespace_async({
name="namespace-0001",
description=nil,
transactionSetting=nil,
assumeUserId="grn:gs2::YourOwnerId:identifier:user:user-0001",
autoRunStampSheetNotification=nil,
autoRunTransactionNotification=nil,
logSetting={
loggingNamespaceId="grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001",
},
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;getNamespaceStatus
ネームスペースの状態を取得
指定されたネームスペースの現在の状態を取得します。
これには、ネームスペースがアクティブか、保留中か、またはその他の状態にあるかが含まれます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| status | string |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetNamespaceStatus(
&distributor.GetNamespaceStatusRequest {
NamespaceName: pointy.String("namespace-0001"),
}
)
if err != nil {
panic("error occurred")
}
status := result.Statususe Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetNamespaceStatusRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getNamespaceStatus(
(new GetNamespaceStatusRequest())
->withNamespaceName("namespace-0001")
);
$status = $result->getStatus();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetNamespaceStatusRequest;
import io.gs2.distributor.result.GetNamespaceStatusResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetNamespaceStatusResult result = client.getNamespaceStatus(
new GetNamespaceStatusRequest()
.withNamespaceName("namespace-0001")
);
String status = result.getStatus();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetNamespaceStatusResult> asyncResult = null;
yield return client.GetNamespaceStatus(
new Gs2.Gs2Distributor.Request.GetNamespaceStatusRequest()
.WithNamespaceName("namespace-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var status = result.Status;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getNamespaceStatus(
new Gs2Distributor.GetNamespaceStatusRequest()
.withNamespaceName("namespace-0001")
);
const status = result.getStatus();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_namespace_status(
distributor.GetNamespaceStatusRequest()
.with_namespace_name('namespace-0001')
)
status = result.status
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_namespace_status({
namespaceName="namespace-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
status = result.status;client = gs2('distributor')
api_result_handler = client.get_namespace_status_async({
namespaceName="namespace-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
status = result.status;getNamespace
ネームスペースを取得
指定されたネームスペースの詳細情報を取得します。
これには、ネームスペースの名前、説明、およびその他の設定情報が含まれます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | Namespace | ネームスペース |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetNamespace(
&distributor.GetNamespaceRequest {
NamespaceName: pointy.String("namespace-0001"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getNamespace(
(new GetNamespaceRequest())
->withNamespaceName("namespace-0001")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetNamespaceRequest;
import io.gs2.distributor.result.GetNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetNamespaceResult result = client.getNamespace(
new GetNamespaceRequest()
.withNamespaceName("namespace-0001")
);
Namespace item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetNamespaceResult> asyncResult = null;
yield return client.GetNamespace(
new Gs2.Gs2Distributor.Request.GetNamespaceRequest()
.WithNamespaceName("namespace-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getNamespace(
new Gs2Distributor.GetNamespaceRequest()
.withNamespaceName("namespace-0001")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_namespace(
distributor.GetNamespaceRequest()
.with_namespace_name('namespace-0001')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_namespace({
namespaceName="namespace-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_namespace_async({
namespaceName="namespace-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;updateNamespace
ネームスペースを更新
指定されたネームスペースの設定を更新します。
ネームスペースの説明や、特定の設定を変更することができます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| description | string | ~ 1024文字 | 説明文 | |||
| transactionSetting | TransactionSetting | トランザクション設定 リソース配布処理時の分散トランザクションの実行方法を制御する設定です。自動実行、アトミックコミット、非同期処理などのオプションをサポートします。 | ||||
| assumeUserId | string | ~ 1024文字 | GS2-Identifier ユーザー GRN | |||
| autoRunStampSheetNotification | NotificationSetting | ✓ | トランザクションの自動実行が完了したときのプッシュ通知(旧仕様) トランザクションがサーバーサイドで自動実行完了した際に GS2-Gateway 経由でプッシュ通知を送信するための設定です。これは旧仕様であり、新仕様では autoRunTransactionNotification を使用してください。 | |||
| autoRunTransactionNotification | NotificationSetting | ✓ | トランザクションの自動実行が完了したときのプッシュ通知 分散トランザクションがサーバーサイドで自動実行完了した際に GS2-Gateway 経由でプッシュ通知を送信するための設定です。トランザクション結果をクライアントに通知し、ローカル状態を適切に更新できるようにします。 | |||
| logSetting | LogSetting | ログの出力設定 ディストリビューター操作のログデータを GS2-Log に出力するための設定です。GS2-Log のネームスペースを指定することで、リソース配布・入手アクション実行・トランザクション処理の API リクエスト・レスポンスログを収集できます。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | Namespace | 更新したネームスペース |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.UpdateNamespace(
&distributor.UpdateNamespaceRequest {
NamespaceName: pointy.String("namespace-0001"),
Description: pointy.String("description1"),
TransactionSetting: nil,
AssumeUserId: pointy.String("grn:gs2::YourOwnerId:identifier:user:user-0001"),
AutoRunStampSheetNotification: nil,
AutoRunTransactionNotification: nil,
LogSetting: nil,
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\UpdateNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->updateNamespace(
(new UpdateNamespaceRequest())
->withNamespaceName("namespace-0001")
->withDescription("description1")
->withTransactionSetting(null)
->withAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
->withAutoRunStampSheetNotification(null)
->withAutoRunTransactionNotification(null)
->withLogSetting(null)
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.UpdateNamespaceRequest;
import io.gs2.distributor.result.UpdateNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
UpdateNamespaceResult result = client.updateNamespace(
new UpdateNamespaceRequest()
.withNamespaceName("namespace-0001")
.withDescription("description1")
.withTransactionSetting(null)
.withAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
.withAutoRunStampSheetNotification(null)
.withAutoRunTransactionNotification(null)
.withLogSetting(null)
);
Namespace item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.UpdateNamespaceResult> asyncResult = null;
yield return client.UpdateNamespace(
new Gs2.Gs2Distributor.Request.UpdateNamespaceRequest()
.WithNamespaceName("namespace-0001")
.WithDescription("description1")
.WithTransactionSetting(null)
.WithAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
.WithAutoRunStampSheetNotification(null)
.WithAutoRunTransactionNotification(null)
.WithLogSetting(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.updateNamespace(
new Gs2Distributor.UpdateNamespaceRequest()
.withNamespaceName("namespace-0001")
.withDescription("description1")
.withTransactionSetting(null)
.withAssumeUserId("grn:gs2::YourOwnerId:identifier:user:user-0001")
.withAutoRunStampSheetNotification(null)
.withAutoRunTransactionNotification(null)
.withLogSetting(null)
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.update_namespace(
distributor.UpdateNamespaceRequest()
.with_namespace_name('namespace-0001')
.with_description('description1')
.with_transaction_setting(None)
.with_assume_user_id('grn:gs2::YourOwnerId:identifier:user:user-0001')
.with_auto_run_stamp_sheet_notification(None)
.with_auto_run_transaction_notification(None)
.with_log_setting(None)
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.update_namespace({
namespaceName="namespace-0001",
description="description1",
transactionSetting=nil,
assumeUserId="grn:gs2::YourOwnerId:identifier:user:user-0001",
autoRunStampSheetNotification=nil,
autoRunTransactionNotification=nil,
logSetting=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.update_namespace_async({
namespaceName="namespace-0001",
description="description1",
transactionSetting=nil,
assumeUserId="grn:gs2::YourOwnerId:identifier:user:user-0001",
autoRunStampSheetNotification=nil,
autoRunTransactionNotification=nil,
logSetting=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;deleteNamespace
ネームスペースを削除
指定されたネームスペースを削除します。
この操作は不可逆であり、削除されたネームスペースに関連するすべてのデータは回復不能になります。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | Namespace | 削除したネームスペース |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.DeleteNamespace(
&distributor.DeleteNamespaceRequest {
NamespaceName: pointy.String("namespace-0001"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\DeleteNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->deleteNamespace(
(new DeleteNamespaceRequest())
->withNamespaceName("namespace-0001")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.DeleteNamespaceRequest;
import io.gs2.distributor.result.DeleteNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
DeleteNamespaceResult result = client.deleteNamespace(
new DeleteNamespaceRequest()
.withNamespaceName("namespace-0001")
);
Namespace item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.DeleteNamespaceResult> asyncResult = null;
yield return client.DeleteNamespace(
new Gs2.Gs2Distributor.Request.DeleteNamespaceRequest()
.WithNamespaceName("namespace-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.deleteNamespace(
new Gs2Distributor.DeleteNamespaceRequest()
.withNamespaceName("namespace-0001")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.delete_namespace(
distributor.DeleteNamespaceRequest()
.with_namespace_name('namespace-0001')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.delete_namespace({
namespaceName="namespace-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.delete_namespace_async({
namespaceName="namespace-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;getServiceVersion
マイクロサービスのバージョンを取得
詳細
Request
Request parameters: None
Result
| 型 | 説明 | |
|---|---|---|
| item | string | バージョン |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetServiceVersion(
&distributor.GetServiceVersionRequest {
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetServiceVersionRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getServiceVersion(
(new GetServiceVersionRequest())
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetServiceVersionRequest;
import io.gs2.distributor.result.GetServiceVersionResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetServiceVersionResult result = client.getServiceVersion(
new GetServiceVersionRequest()
);
String item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetServiceVersionResult> asyncResult = null;
yield return client.GetServiceVersion(
new Gs2.Gs2Distributor.Request.GetServiceVersionRequest(),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getServiceVersion(
new Gs2Distributor.GetServiceVersionRequest()
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_service_version(
distributor.GetServiceVersionRequest()
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_service_version({
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_service_version_async({
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;distribute
所持品を配布する
配布リソースに指定されたアクションに基づいてユーザーにリソースを配布します。
対応サービスには、Inventory、Stamina、Experience、Inbox、Money などが含まれます。
配布によりユーザーの所持品がキャパシティを超えた場合、溢れ分は配信モデルに設定されたプレゼントボックスのネームスペースに自動転送されます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| distributorName | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| distributeResource | DistributeResource | ✓ | 加算するリソース | |||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| distributeResource | DistributeResource | 処理した DistributeResource |
| inboxNamespaceId | string | 所持品がキャパシティをオーバーしたときに転送するプレゼントボックスのネームスペース のGRN |
| result | string | レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.Distribute(
&distributor.DistributeRequest {
NamespaceName: pointy.String("namespace-0001"),
DistributorName: pointy.String("distributor-0001"),
UserId: pointy.String("user-0001"),
DistributeResource: &distributor.DistributeResource{
Action: pointy.String("Gs2Money:DepositWallet"),
Request: pointy.String("{}"),
},
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
distributeResource := result.DistributeResource
inboxNamespaceId := result.InboxNamespaceId
result := result.Resultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\DistributeRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->distribute(
(new DistributeRequest())
->withNamespaceName("namespace-0001")
->withDistributorName("distributor-0001")
->withUserId("user-0001")
->withDistributeResource((new DistributeResource())
->withAction("Gs2Money:DepositWallet")
->withRequest("{}")
)
->withTimeOffsetToken(null)
);
$distributeResource = $result->getDistributeResource();
$inboxNamespaceId = $result->getInboxNamespaceId();
$result = $result->getResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.DistributeRequest;
import io.gs2.distributor.result.DistributeResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
DistributeResult result = client.distribute(
new DistributeRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-0001")
.withUserId("user-0001")
.withDistributeResource(new DistributeResource()
.withAction("Gs2Money:DepositWallet")
.withRequest("{}")
)
.withTimeOffsetToken(null)
);
DistributeResource distributeResource = result.getDistributeResource();
String inboxNamespaceId = result.getInboxNamespaceId();
String result = result.getResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.DistributeResult> asyncResult = null;
yield return client.Distribute(
new Gs2.Gs2Distributor.Request.DistributeRequest()
.WithNamespaceName("namespace-0001")
.WithDistributorName("distributor-0001")
.WithUserId("user-0001")
.WithDistributeResource(new Gs2.Gs2Distributor.Model.DistributeResource()
.WithAction("Gs2Money:DepositWallet")
.WithRequest("{}")
)
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var distributeResource = result.DistributeResource;
var inboxNamespaceId = result.InboxNamespaceId;
var result = result.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.distribute(
new Gs2Distributor.DistributeRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-0001")
.withUserId("user-0001")
.withDistributeResource(new Gs2Distributor.model.DistributeResource()
.withAction("Gs2Money:DepositWallet")
.withRequest("{}")
)
.withTimeOffsetToken(null)
);
const distributeResource = result.getDistributeResource();
const inboxNamespaceId = result.getInboxNamespaceId();
const result = result.getResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.distribute(
distributor.DistributeRequest()
.with_namespace_name('namespace-0001')
.with_distributor_name('distributor-0001')
.with_user_id('user-0001')
.with_distribute_resource(distributor.DistributeResource()
.with_action('Gs2Money:DepositWallet')
.with_request('{}')
)
.with_time_offset_token(None)
)
distribute_resource = result.distribute_resource
inbox_namespace_id = result.inbox_namespace_id
result = result.result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.distribute({
namespaceName="namespace-0001",
distributorName="distributor-0001",
userId="user-0001",
distributeResource={
action="Gs2Money:DepositWallet",
request="{}",
},
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
distributeResource = result.distributeResource;
inboxNamespaceId = result.inboxNamespaceId;
result = result.result;client = gs2('distributor')
api_result_handler = client.distribute_async({
namespaceName="namespace-0001",
distributorName="distributor-0001",
userId="user-0001",
distributeResource={
action="Gs2Money:DepositWallet",
request="{}",
},
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
distributeResource = result.distributeResource;
inboxNamespaceId = result.inboxNamespaceId;
result = result.result;distributeWithoutOverflowProcess
所持品を配布する(溢れた際の救済処置無し)
溢れ処理なしでユーザーにリソースを配布します。
通常の配布操作とは異なり、配布によりユーザーの所持品がキャパシティを超えた場合、超過分は単に破棄され、プレゼントボックスへの転送は行われません。
このバリエーションではネームスペースの指定は不要です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| distributeResource | DistributeResource | ✓ | 加算するリソース | |||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| distributeResource | DistributeResource | 処理した DistributeResource |
| result | string | レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.DistributeWithoutOverflowProcess(
&distributor.DistributeWithoutOverflowProcessRequest {
UserId: pointy.String("user-0001"),
DistributeResource: &distributor.DistributeResource{
Action: pointy.String("Gs2Money:DepositWallet"),
Request: pointy.String("{}"),
},
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
distributeResource := result.DistributeResource
result := result.Resultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\DistributeWithoutOverflowProcessRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->distributeWithoutOverflowProcess(
(new DistributeWithoutOverflowProcessRequest())
->withUserId("user-0001")
->withDistributeResource((new DistributeResource())
->withAction("Gs2Money:DepositWallet")
->withRequest("{}")
)
->withTimeOffsetToken(null)
);
$distributeResource = $result->getDistributeResource();
$result = $result->getResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.DistributeWithoutOverflowProcessRequest;
import io.gs2.distributor.result.DistributeWithoutOverflowProcessResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
DistributeWithoutOverflowProcessResult result = client.distributeWithoutOverflowProcess(
new DistributeWithoutOverflowProcessRequest()
.withUserId("user-0001")
.withDistributeResource(new DistributeResource()
.withAction("Gs2Money:DepositWallet")
.withRequest("{}")
)
.withTimeOffsetToken(null)
);
DistributeResource distributeResource = result.getDistributeResource();
String result = result.getResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.DistributeWithoutOverflowProcessResult> asyncResult = null;
yield return client.DistributeWithoutOverflowProcess(
new Gs2.Gs2Distributor.Request.DistributeWithoutOverflowProcessRequest()
.WithUserId("user-0001")
.WithDistributeResource(new Gs2.Gs2Distributor.Model.DistributeResource()
.WithAction("Gs2Money:DepositWallet")
.WithRequest("{}")
)
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var distributeResource = result.DistributeResource;
var result = result.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.distributeWithoutOverflowProcess(
new Gs2Distributor.DistributeWithoutOverflowProcessRequest()
.withUserId("user-0001")
.withDistributeResource(new Gs2Distributor.model.DistributeResource()
.withAction("Gs2Money:DepositWallet")
.withRequest("{}")
)
.withTimeOffsetToken(null)
);
const distributeResource = result.getDistributeResource();
const result = result.getResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.distribute_without_overflow_process(
distributor.DistributeWithoutOverflowProcessRequest()
.with_user_id('user-0001')
.with_distribute_resource(distributor.DistributeResource()
.with_action('Gs2Money:DepositWallet')
.with_request('{}')
)
.with_time_offset_token(None)
)
distribute_resource = result.distribute_resource
result = result.result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.distribute_without_overflow_process({
userId="user-0001",
distributeResource={
action="Gs2Money:DepositWallet",
request="{}",
},
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
distributeResource = result.distributeResource;
result = result.result;client = gs2('distributor')
api_result_handler = client.distribute_without_overflow_process_async({
userId="user-0001",
distributeResource={
action="Gs2Money:DepositWallet",
request="{}",
},
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
distributeResource = result.distributeResource;
result = result.result;runVerifyTask
トランザクションの検証アクションを実行する
トランザクション内の単一の検証タスクを実行し、前提条件を確認します。
返されるコンテキストスタックは検証結果を反映し、トランザクション内の後続のタスクに渡されます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| verifyTask | string | ✓ | ~ 5242880文字 | 検証アクション | ||
| keyId | string | ✓ | ~ 1024文字 | 暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| contextStack | string | タスクの実行結果を反映したコンテキストスタック |
| statusCode | int | ステータスコード |
| result | string | レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.RunVerifyTask(
&distributor.RunVerifyTaskRequest {
NamespaceName: pointy.String("namespace-0001"),
VerifyTask: pointy.String("stampTask"),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
contextStack := result.ContextStack
statusCode := result.StatusCode
result := result.Resultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\RunVerifyTaskRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->runVerifyTask(
(new RunVerifyTaskRequest())
->withNamespaceName("namespace-0001")
->withVerifyTask("stampTask")
->withKeyId("key-0001")
);
$contextStack = $result->getContextStack();
$statusCode = $result->getStatusCode();
$result = $result->getResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.RunVerifyTaskRequest;
import io.gs2.distributor.result.RunVerifyTaskResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
RunVerifyTaskResult result = client.runVerifyTask(
new RunVerifyTaskRequest()
.withNamespaceName("namespace-0001")
.withVerifyTask("stampTask")
.withKeyId("key-0001")
);
String contextStack = result.getContextStack();
int statusCode = result.getStatusCode();
String result = result.getResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.RunVerifyTaskResult> asyncResult = null;
yield return client.RunVerifyTask(
new Gs2.Gs2Distributor.Request.RunVerifyTaskRequest()
.WithNamespaceName("namespace-0001")
.WithVerifyTask("stampTask")
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var contextStack = result.ContextStack;
var statusCode = result.StatusCode;
var result = result.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.runVerifyTask(
new Gs2Distributor.RunVerifyTaskRequest()
.withNamespaceName("namespace-0001")
.withVerifyTask("stampTask")
.withKeyId("key-0001")
);
const contextStack = result.getContextStack();
const statusCode = result.getStatusCode();
const result = result.getResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.run_verify_task(
distributor.RunVerifyTaskRequest()
.with_namespace_name('namespace-0001')
.with_verify_task('stampTask')
.with_key_id('key-0001')
)
context_stack = result.context_stack
status_code = result.status_code
result = result.result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.run_verify_task({
namespaceName="namespace-0001",
verifyTask="stampTask",
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
contextStack = result.contextStack;
statusCode = result.statusCode;
result = result.result;client = gs2('distributor')
api_result_handler = client.run_verify_task_async({
namespaceName="namespace-0001",
verifyTask="stampTask",
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
contextStack = result.contextStack;
statusCode = result.statusCode;
result = result.result;runStampSheetExpress
トランザクションを実行する
トランザクションの3つのフェーズを順番に実行します:検証アクション、消費アクション、入手アクション。
これは RunVerifyTask、RunStampTask、RunStampSheet を1回の呼び出しにまとめた便利なAPIです。
各検証タスク、消費アクション、入手アクションの個別のステータスコードとレスポンス内容を含む、すべてのフェーズの結果がまとめて返されます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| stampSheet | string | ✓ | ~ 5242880文字 | トランザクション | ||
| keyId | string | ✓ | ~ 1024文字 | 暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| verifyTaskResultCodes | List<int> | 検証アクションの実行ステータスコード |
| verifyTaskResults | List<string> | 検証アクションの実行結果 |
| taskResultCodes | List<int> | 消費アクションの実行ステータスコード |
| taskResults | List<string> | 消費アクションの実行結果 |
| sheetResultCode | int | 入手アクションの実行ステータスコード |
| sheetResult | string | 入手アクションの実行結果レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.RunStampSheetExpress(
&distributor.RunStampSheetExpressRequest {
NamespaceName: pointy.String("namespace-0001"),
StampSheet: pointy.String("stampSheet"),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
verifyTaskResultCodes := result.VerifyTaskResultCodes
verifyTaskResults := result.VerifyTaskResults
taskResultCodes := result.TaskResultCodes
taskResults := result.TaskResults
sheetResultCode := result.SheetResultCode
sheetResult := result.SheetResultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\RunStampSheetExpressRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->runStampSheetExpress(
(new RunStampSheetExpressRequest())
->withNamespaceName("namespace-0001")
->withStampSheet("stampSheet")
->withKeyId("key-0001")
);
$verifyTaskResultCodes = $result->getVerifyTaskResultCodes();
$verifyTaskResults = $result->getVerifyTaskResults();
$taskResultCodes = $result->getTaskResultCodes();
$taskResults = $result->getTaskResults();
$sheetResultCode = $result->getSheetResultCode();
$sheetResult = $result->getSheetResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.RunStampSheetExpressRequest;
import io.gs2.distributor.result.RunStampSheetExpressResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
RunStampSheetExpressResult result = client.runStampSheetExpress(
new RunStampSheetExpressRequest()
.withNamespaceName("namespace-0001")
.withStampSheet("stampSheet")
.withKeyId("key-0001")
);
List<int> verifyTaskResultCodes = result.getVerifyTaskResultCodes();
List<String> verifyTaskResults = result.getVerifyTaskResults();
List<int> taskResultCodes = result.getTaskResultCodes();
List<String> taskResults = result.getTaskResults();
int sheetResultCode = result.getSheetResultCode();
String sheetResult = result.getSheetResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.RunStampSheetExpressResult> asyncResult = null;
yield return client.RunStampSheetExpress(
new Gs2.Gs2Distributor.Request.RunStampSheetExpressRequest()
.WithNamespaceName("namespace-0001")
.WithStampSheet("stampSheet")
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var verifyTaskResultCodes = result.VerifyTaskResultCodes;
var verifyTaskResults = result.VerifyTaskResults;
var taskResultCodes = result.TaskResultCodes;
var taskResults = result.TaskResults;
var sheetResultCode = result.SheetResultCode;
var sheetResult = result.SheetResult;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.runStampSheetExpress(
new Gs2Distributor.RunStampSheetExpressRequest()
.withNamespaceName("namespace-0001")
.withStampSheet("stampSheet")
.withKeyId("key-0001")
);
const verifyTaskResultCodes = result.getVerifyTaskResultCodes();
const verifyTaskResults = result.getVerifyTaskResults();
const taskResultCodes = result.getTaskResultCodes();
const taskResults = result.getTaskResults();
const sheetResultCode = result.getSheetResultCode();
const sheetResult = result.getSheetResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.run_stamp_sheet_express(
distributor.RunStampSheetExpressRequest()
.with_namespace_name('namespace-0001')
.with_stamp_sheet('stampSheet')
.with_key_id('key-0001')
)
verify_task_result_codes = result.verify_task_result_codes
verify_task_results = result.verify_task_results
task_result_codes = result.task_result_codes
task_results = result.task_results
sheet_result_code = result.sheet_result_code
sheet_result = result.sheet_result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.run_stamp_sheet_express({
namespaceName="namespace-0001",
stampSheet="stampSheet",
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
verifyTaskResultCodes = result.verifyTaskResultCodes;
verifyTaskResults = result.verifyTaskResults;
taskResultCodes = result.taskResultCodes;
taskResults = result.taskResults;
sheetResultCode = result.sheetResultCode;
sheetResult = result.sheetResult;client = gs2('distributor')
api_result_handler = client.run_stamp_sheet_express_async({
namespaceName="namespace-0001",
stampSheet="stampSheet",
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
verifyTaskResultCodes = result.verifyTaskResultCodes;
verifyTaskResults = result.verifyTaskResults;
taskResultCodes = result.taskResultCodes;
taskResults = result.taskResults;
sheetResultCode = result.sheetResultCode;
sheetResult = result.sheetResult;runVerifyTaskWithoutNamespace
GS2-Distributor のネームスペースを指定せずに、トランザクションの検証アクションを実行する
GS2-Distributor のネームスペースを指定せずに検証タスクを実行します。
ネームスペースの指定を省略することで、以下の副作用があります:
- 実行ログが記録されません
- リソース溢れ処理が実行されません
ネームスペースレベルの機能のオーバーヘッドなしに軽量な検証実行が必要な場合に使用します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| verifyTask | string | ✓ | ~ 5242880文字 | 検証アクション | ||
| keyId | string | ✓ | ~ 1024文字 | 暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| contextStack | string | タスクの実行結果を反映したコンテキストスタック |
| statusCode | int | ステータスコード |
| result | string | レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.RunVerifyTaskWithoutNamespace(
&distributor.RunVerifyTaskWithoutNamespaceRequest {
VerifyTask: pointy.String("stampTask"),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
contextStack := result.ContextStack
statusCode := result.StatusCode
result := result.Resultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\RunVerifyTaskWithoutNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->runVerifyTaskWithoutNamespace(
(new RunVerifyTaskWithoutNamespaceRequest())
->withVerifyTask("stampTask")
->withKeyId("key-0001")
);
$contextStack = $result->getContextStack();
$statusCode = $result->getStatusCode();
$result = $result->getResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.RunVerifyTaskWithoutNamespaceRequest;
import io.gs2.distributor.result.RunVerifyTaskWithoutNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
RunVerifyTaskWithoutNamespaceResult result = client.runVerifyTaskWithoutNamespace(
new RunVerifyTaskWithoutNamespaceRequest()
.withVerifyTask("stampTask")
.withKeyId("key-0001")
);
String contextStack = result.getContextStack();
int statusCode = result.getStatusCode();
String result = result.getResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.RunVerifyTaskWithoutNamespaceResult> asyncResult = null;
yield return client.RunVerifyTaskWithoutNamespace(
new Gs2.Gs2Distributor.Request.RunVerifyTaskWithoutNamespaceRequest()
.WithVerifyTask("stampTask")
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var contextStack = result.ContextStack;
var statusCode = result.StatusCode;
var result = result.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.runVerifyTaskWithoutNamespace(
new Gs2Distributor.RunVerifyTaskWithoutNamespaceRequest()
.withVerifyTask("stampTask")
.withKeyId("key-0001")
);
const contextStack = result.getContextStack();
const statusCode = result.getStatusCode();
const result = result.getResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.run_verify_task_without_namespace(
distributor.RunVerifyTaskWithoutNamespaceRequest()
.with_verify_task('stampTask')
.with_key_id('key-0001')
)
context_stack = result.context_stack
status_code = result.status_code
result = result.result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.run_verify_task_without_namespace({
verifyTask="stampTask",
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
contextStack = result.contextStack;
statusCode = result.statusCode;
result = result.result;client = gs2('distributor')
api_result_handler = client.run_verify_task_without_namespace_async({
verifyTask="stampTask",
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
contextStack = result.contextStack;
statusCode = result.statusCode;
result = result.result;runStampTaskWithoutNamespace
GS2-Distributor のネームスペースを指定せずに、トランザクションの消費アクションを実行する
GS2-Distributor のネームスペースを指定せずに消費アクションを実行します。
ネームスペースの指定を省略することで、以下の副作用があります:
- 実行ログが記録されません
- リソース溢れ処理が実行されません
ネームスペースレベルの機能のオーバーヘッドなしに軽量な消費実行が必要な場合に使用します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| stampTask | string | ✓ | ~ 5242880文字 | 消費アクション | ||
| keyId | string | ✓ | ~ 1024文字 | 暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| contextStack | string | タスクの実行結果を反映したコンテキストスタック |
| statusCode | int | ステータスコード |
| result | string | レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.RunStampTaskWithoutNamespace(
&distributor.RunStampTaskWithoutNamespaceRequest {
StampTask: pointy.String("stampTask"),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
contextStack := result.ContextStack
statusCode := result.StatusCode
result := result.Resultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\RunStampTaskWithoutNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->runStampTaskWithoutNamespace(
(new RunStampTaskWithoutNamespaceRequest())
->withStampTask("stampTask")
->withKeyId("key-0001")
);
$contextStack = $result->getContextStack();
$statusCode = $result->getStatusCode();
$result = $result->getResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.RunStampTaskWithoutNamespaceRequest;
import io.gs2.distributor.result.RunStampTaskWithoutNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
RunStampTaskWithoutNamespaceResult result = client.runStampTaskWithoutNamespace(
new RunStampTaskWithoutNamespaceRequest()
.withStampTask("stampTask")
.withKeyId("key-0001")
);
String contextStack = result.getContextStack();
int statusCode = result.getStatusCode();
String result = result.getResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.RunStampTaskWithoutNamespaceResult> asyncResult = null;
yield return client.RunStampTaskWithoutNamespace(
new Gs2.Gs2Distributor.Request.RunStampTaskWithoutNamespaceRequest()
.WithStampTask("stampTask")
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var contextStack = result.ContextStack;
var statusCode = result.StatusCode;
var result = result.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.runStampTaskWithoutNamespace(
new Gs2Distributor.RunStampTaskWithoutNamespaceRequest()
.withStampTask("stampTask")
.withKeyId("key-0001")
);
const contextStack = result.getContextStack();
const statusCode = result.getStatusCode();
const result = result.getResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.run_stamp_task_without_namespace(
distributor.RunStampTaskWithoutNamespaceRequest()
.with_stamp_task('stampTask')
.with_key_id('key-0001')
)
context_stack = result.context_stack
status_code = result.status_code
result = result.result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.run_stamp_task_without_namespace({
stampTask="stampTask",
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
contextStack = result.contextStack;
statusCode = result.statusCode;
result = result.result;client = gs2('distributor')
api_result_handler = client.run_stamp_task_without_namespace_async({
stampTask="stampTask",
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
contextStack = result.contextStack;
statusCode = result.statusCode;
result = result.result;runStampSheetWithoutNamespace
GS2-Distributor のネームスペースを指定せずに、トランザクションの入手アクションを実行する
GS2-Distributor のネームスペースを指定せずに入手アクションを実行します。
ネームスペースの指定を省略することで、以下の副作用があります:
- 実行ログが記録されません
- リソース溢れ処理が実行されません(超過リソースは破棄されます)
ネームスペースレベルの機能のオーバーヘッドなしに軽量な入手実行が必要な場合に使用します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| stampSheet | string | ✓ | ~ 5242880文字 | トランザクション | ||
| keyId | string | ✓ | ~ 1024文字 | 暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| statusCode | int | ステータスコード |
| result | string | レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.RunStampSheetWithoutNamespace(
&distributor.RunStampSheetWithoutNamespaceRequest {
StampSheet: pointy.String("stampSheet"),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
statusCode := result.StatusCode
result := result.Resultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\RunStampSheetWithoutNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->runStampSheetWithoutNamespace(
(new RunStampSheetWithoutNamespaceRequest())
->withStampSheet("stampSheet")
->withKeyId("key-0001")
);
$statusCode = $result->getStatusCode();
$result = $result->getResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.RunStampSheetWithoutNamespaceRequest;
import io.gs2.distributor.result.RunStampSheetWithoutNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
RunStampSheetWithoutNamespaceResult result = client.runStampSheetWithoutNamespace(
new RunStampSheetWithoutNamespaceRequest()
.withStampSheet("stampSheet")
.withKeyId("key-0001")
);
int statusCode = result.getStatusCode();
String result = result.getResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.RunStampSheetWithoutNamespaceResult> asyncResult = null;
yield return client.RunStampSheetWithoutNamespace(
new Gs2.Gs2Distributor.Request.RunStampSheetWithoutNamespaceRequest()
.WithStampSheet("stampSheet")
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var statusCode = result.StatusCode;
var result = result.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.runStampSheetWithoutNamespace(
new Gs2Distributor.RunStampSheetWithoutNamespaceRequest()
.withStampSheet("stampSheet")
.withKeyId("key-0001")
);
const statusCode = result.getStatusCode();
const result = result.getResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.run_stamp_sheet_without_namespace(
distributor.RunStampSheetWithoutNamespaceRequest()
.with_stamp_sheet('stampSheet')
.with_key_id('key-0001')
)
status_code = result.status_code
result = result.result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.run_stamp_sheet_without_namespace({
stampSheet="stampSheet",
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
statusCode = result.statusCode;
result = result.result;client = gs2('distributor')
api_result_handler = client.run_stamp_sheet_without_namespace_async({
stampSheet="stampSheet",
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
statusCode = result.statusCode;
result = result.result;runStampSheetExpressWithoutNamespace
GS2-Distributor のネームスペースを指定せずに、トランザクションを実行する
GS2-Distributor のネームスペースを指定せずに、トランザクションの3つのフェーズ(検証、消費、入手)を順番に実行します。
ネームスペースの指定を省略することで、以下の副作用があります:
- 実行ログが記録されません
- リソース溢れ処理が実行されません(超過リソースは破棄されます)
ネームスペースレベルの機能のオーバーヘッドなしに軽量なトランザクション全体の実行が必要な場合に使用します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| stampSheet | string | ✓ | ~ 5242880文字 | トランザクション | ||
| keyId | string | ✓ | ~ 1024文字 | 暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| verifyTaskResultCodes | List<int> | 検証アクションの実行ステータスコード |
| verifyTaskResults | List<string> | 検証アクションの実行結果 |
| taskResultCodes | List<int> | 消費アクションの実行ステータスコード |
| taskResults | List<string> | 消費アクションの実行結果 |
| sheetResultCode | int | 入手アクションの実行ステータスコード |
| sheetResult | string | 入手アクションの実行結果レスポンス内容 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.RunStampSheetExpressWithoutNamespace(
&distributor.RunStampSheetExpressWithoutNamespaceRequest {
StampSheet: pointy.String("stampSheet"),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
verifyTaskResultCodes := result.VerifyTaskResultCodes
verifyTaskResults := result.VerifyTaskResults
taskResultCodes := result.TaskResultCodes
taskResults := result.TaskResults
sheetResultCode := result.SheetResultCode
sheetResult := result.SheetResultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\RunStampSheetExpressWithoutNamespaceRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->runStampSheetExpressWithoutNamespace(
(new RunStampSheetExpressWithoutNamespaceRequest())
->withStampSheet("stampSheet")
->withKeyId("key-0001")
);
$verifyTaskResultCodes = $result->getVerifyTaskResultCodes();
$verifyTaskResults = $result->getVerifyTaskResults();
$taskResultCodes = $result->getTaskResultCodes();
$taskResults = $result->getTaskResults();
$sheetResultCode = $result->getSheetResultCode();
$sheetResult = $result->getSheetResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.RunStampSheetExpressWithoutNamespaceRequest;
import io.gs2.distributor.result.RunStampSheetExpressWithoutNamespaceResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
RunStampSheetExpressWithoutNamespaceResult result = client.runStampSheetExpressWithoutNamespace(
new RunStampSheetExpressWithoutNamespaceRequest()
.withStampSheet("stampSheet")
.withKeyId("key-0001")
);
List<int> verifyTaskResultCodes = result.getVerifyTaskResultCodes();
List<String> verifyTaskResults = result.getVerifyTaskResults();
List<int> taskResultCodes = result.getTaskResultCodes();
List<String> taskResults = result.getTaskResults();
int sheetResultCode = result.getSheetResultCode();
String sheetResult = result.getSheetResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.RunStampSheetExpressWithoutNamespaceResult> asyncResult = null;
yield return client.RunStampSheetExpressWithoutNamespace(
new Gs2.Gs2Distributor.Request.RunStampSheetExpressWithoutNamespaceRequest()
.WithStampSheet("stampSheet")
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var verifyTaskResultCodes = result.VerifyTaskResultCodes;
var verifyTaskResults = result.VerifyTaskResults;
var taskResultCodes = result.TaskResultCodes;
var taskResults = result.TaskResults;
var sheetResultCode = result.SheetResultCode;
var sheetResult = result.SheetResult;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.runStampSheetExpressWithoutNamespace(
new Gs2Distributor.RunStampSheetExpressWithoutNamespaceRequest()
.withStampSheet("stampSheet")
.withKeyId("key-0001")
);
const verifyTaskResultCodes = result.getVerifyTaskResultCodes();
const verifyTaskResults = result.getVerifyTaskResults();
const taskResultCodes = result.getTaskResultCodes();
const taskResults = result.getTaskResults();
const sheetResultCode = result.getSheetResultCode();
const sheetResult = result.getSheetResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.run_stamp_sheet_express_without_namespace(
distributor.RunStampSheetExpressWithoutNamespaceRequest()
.with_stamp_sheet('stampSheet')
.with_key_id('key-0001')
)
verify_task_result_codes = result.verify_task_result_codes
verify_task_results = result.verify_task_results
task_result_codes = result.task_result_codes
task_results = result.task_results
sheet_result_code = result.sheet_result_code
sheet_result = result.sheet_result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.run_stamp_sheet_express_without_namespace({
stampSheet="stampSheet",
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
verifyTaskResultCodes = result.verifyTaskResultCodes;
verifyTaskResults = result.verifyTaskResults;
taskResultCodes = result.taskResultCodes;
taskResults = result.taskResults;
sheetResultCode = result.sheetResultCode;
sheetResult = result.sheetResult;client = gs2('distributor')
api_result_handler = client.run_stamp_sheet_express_without_namespace_async({
stampSheet="stampSheet",
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
verifyTaskResultCodes = result.verifyTaskResultCodes;
verifyTaskResults = result.verifyTaskResults;
taskResultCodes = result.taskResultCodes;
taskResults = result.taskResults;
sheetResultCode = result.sheetResultCode;
sheetResult = result.sheetResult;setTransactionDefaultConfig
トランザクション発行APIに対して指定する Config のデフォルト値を設定する
後続のトランザクションAPI呼び出しに自動的に適用されるデフォルトの Config 値を設定します。
デフォルト値は返される ContextStack に埋め込まれ、この ContextStack を後続のリクエストに含めることで Config 値が自動適用されます。
設定されたデフォルト値の有効期間は設定時から18時間です。それを超えると値は無視され、再設定が必要です。
スロット名やレートモデル名など、よく使用する Config 値を毎回指定せずに一度だけ設定する場合に便利です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| accessToken | string | ✓ | ~ 128文字 | アクセストークン | ||
| config | List<Config> | ✓ | 1 ~ 1000 items | トランザクションのプレースホルダの適用する設定値 |
Result
| 型 | 説明 | |
|---|---|---|
| newContextStack | string | デフォルトコンフィグを反映するためのコンテキストスタック |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.SetTransactionDefaultConfig(
&distributor.SetTransactionDefaultConfigRequest {
AccessToken: pointy.String("accessToken-0001"),
Config: []distributor.Config{
distributor.Config{
Key: pointy.String("key-0001"),
Value: pointy.String("value-0001"),
},
distributor.Config{
Key: pointy.String("key-0002"),
Value: pointy.String("value-0002"),
},
},
}
)
if err != nil {
panic("error occurred")
}
newContextStack := result.NewContextStackuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\SetTransactionDefaultConfigRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->setTransactionDefaultConfig(
(new SetTransactionDefaultConfigRequest())
->withAccessToken("accessToken-0001")
->withConfig([
(new Config())
->withKey("key-0001")
->withValue("value-0001"),
(new Config())
->withKey("key-0002")
->withValue("value-0002"),
])
);
$newContextStack = $result->getNewContextStack();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.SetTransactionDefaultConfigRequest;
import io.gs2.distributor.result.SetTransactionDefaultConfigResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
SetTransactionDefaultConfigResult result = client.setTransactionDefaultConfig(
new SetTransactionDefaultConfigRequest()
.withAccessToken("accessToken-0001")
.withConfig(Arrays.asList(
new Config()
.withKey("key-0001")
.withValue("value-0001"),
new Config()
.withKey("key-0002")
.withValue("value-0002")
))
);
String newContextStack = result.getNewContextStack();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.SetTransactionDefaultConfigResult> asyncResult = null;
yield return client.SetTransactionDefaultConfig(
new Gs2.Gs2Distributor.Request.SetTransactionDefaultConfigRequest()
.WithAccessToken("accessToken-0001")
.WithConfig(new Gs2.Gs2Distributor.Model.Config[] {
new Gs2.Gs2Distributor.Model.Config()
.WithKey("key-0001")
.WithValue("value-0001"),
new Gs2.Gs2Distributor.Model.Config()
.WithKey("key-0002")
.WithValue("value-0002"),
}),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var newContextStack = result.NewContextStack;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.setTransactionDefaultConfig(
new Gs2Distributor.SetTransactionDefaultConfigRequest()
.withAccessToken("accessToken-0001")
.withConfig([
new Gs2Distributor.model.Config()
.withKey("key-0001")
.withValue("value-0001"),
new Gs2Distributor.model.Config()
.withKey("key-0002")
.withValue("value-0002"),
])
);
const newContextStack = result.getNewContextStack();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.set_transaction_default_config(
distributor.SetTransactionDefaultConfigRequest()
.with_access_token('accessToken-0001')
.with_config([
distributor.Config()
.with_key('key-0001')
.with_value('value-0001'),
distributor.Config()
.with_key('key-0002')
.with_value('value-0002'),
])
)
new_context_stack = result.new_context_stack
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.set_transaction_default_config({
accessToken="accessToken-0001",
config={
{
key="key-0001",
value="value-0001",
},
{
key="key-0002",
value="value-0002",
}
},
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;client = gs2('distributor')
api_result_handler = client.set_transaction_default_config_async({
accessToken="accessToken-0001",
config={
{
key="key-0001",
value="value-0001",
},
{
key="key-0002",
value="value-0002",
}
},
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;setTransactionDefaultConfigByUserId
ユーザーIDを指定してトランザクション発行APIに対して指定する Config のデフォルト値を設定する
指定されたユーザーの後続のトランザクションAPI呼び出しに自動的に適用されるデフォルトの Config 値を設定します。
デフォルト値は返される ContextStack に埋め込まれ、この ContextStack を後続のリクエストに含めることで Config 値が自動適用されます。
設定されたデフォルト値の有効期間は設定時から18時間です。それを超えると値は無視され、再設定が必要です。
スロット名やレートモデル名など、よく使用する Config 値を毎回指定せずに一度だけ設定する場合に便利です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| config | List<Config> | ✓ | 1 ~ 1000 items | トランザクションのプレースホルダの適用する設定値 | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| newContextStack | string | デフォルトコンフィグを反映するためのコンテキストスタック |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.SetTransactionDefaultConfigByUserId(
&distributor.SetTransactionDefaultConfigByUserIdRequest {
UserId: pointy.String("user-0001"),
Config: []distributor.Config{
distributor.Config{
Key: pointy.String("key-0001"),
Value: pointy.String("value-0001"),
},
distributor.Config{
Key: pointy.String("key-0002"),
Value: pointy.String("value-0002"),
},
},
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
newContextStack := result.NewContextStackuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\SetTransactionDefaultConfigByUserIdRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->setTransactionDefaultConfigByUserId(
(new SetTransactionDefaultConfigByUserIdRequest())
->withUserId("user-0001")
->withConfig([
(new Config())
->withKey("key-0001")
->withValue("value-0001"),
(new Config())
->withKey("key-0002")
->withValue("value-0002"),
])
->withTimeOffsetToken(null)
);
$newContextStack = $result->getNewContextStack();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.SetTransactionDefaultConfigByUserIdRequest;
import io.gs2.distributor.result.SetTransactionDefaultConfigByUserIdResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
SetTransactionDefaultConfigByUserIdResult result = client.setTransactionDefaultConfigByUserId(
new SetTransactionDefaultConfigByUserIdRequest()
.withUserId("user-0001")
.withConfig(Arrays.asList(
new Config()
.withKey("key-0001")
.withValue("value-0001"),
new Config()
.withKey("key-0002")
.withValue("value-0002")
))
.withTimeOffsetToken(null)
);
String newContextStack = result.getNewContextStack();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.SetTransactionDefaultConfigByUserIdResult> asyncResult = null;
yield return client.SetTransactionDefaultConfigByUserId(
new Gs2.Gs2Distributor.Request.SetTransactionDefaultConfigByUserIdRequest()
.WithUserId("user-0001")
.WithConfig(new Gs2.Gs2Distributor.Model.Config[] {
new Gs2.Gs2Distributor.Model.Config()
.WithKey("key-0001")
.WithValue("value-0001"),
new Gs2.Gs2Distributor.Model.Config()
.WithKey("key-0002")
.WithValue("value-0002"),
})
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var newContextStack = result.NewContextStack;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.setTransactionDefaultConfigByUserId(
new Gs2Distributor.SetTransactionDefaultConfigByUserIdRequest()
.withUserId("user-0001")
.withConfig([
new Gs2Distributor.model.Config()
.withKey("key-0001")
.withValue("value-0001"),
new Gs2Distributor.model.Config()
.withKey("key-0002")
.withValue("value-0002"),
])
.withTimeOffsetToken(null)
);
const newContextStack = result.getNewContextStack();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.set_transaction_default_config_by_user_id(
distributor.SetTransactionDefaultConfigByUserIdRequest()
.with_user_id('user-0001')
.with_config([
distributor.Config()
.with_key('key-0001')
.with_value('value-0001'),
distributor.Config()
.with_key('key-0002')
.with_value('value-0002'),
])
.with_time_offset_token(None)
)
new_context_stack = result.new_context_stack
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.set_transaction_default_config_by_user_id({
userId="user-0001",
config={
{
key="key-0001",
value="value-0001",
},
{
key="key-0002",
value="value-0002",
}
},
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;client = gs2('distributor')
api_result_handler = client.set_transaction_default_config_by_user_id_async({
userId="user-0001",
config={
{
key="key-0001",
value="value-0001",
},
{
key="key-0002",
value="value-0002",
}
},
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;freezeMasterData
マスターデータを現在時刻の内容で固定する
現在ログインしているユーザーのマスターデータを現在のタイムスタンプで固定します。
固定タイムスタンプは返される ContextStack に記録され、この ContextStack を後続のリクエストに含めることで、最新版ではなく固定時点のマスターデータが使用されます。
これにより、一連の関連操作中にマスターデータの一貫性が保証され、操作途中の変更がユーザーに影響しません。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| accessToken | string | ✓ | ~ 128文字 | アクセストークン |
Result
| 型 | 説明 | |
|---|---|---|
| newContextStack | string | マスターデータを固定する時刻を記録したコンテキスト |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.FreezeMasterData(
&distributor.FreezeMasterDataRequest {
NamespaceName: pointy.String("namespace-0001"),
AccessToken: pointy.String("accessToken-0001"),
}
)
if err != nil {
panic("error occurred")
}
newContextStack := result.NewContextStackuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\FreezeMasterDataRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->freezeMasterData(
(new FreezeMasterDataRequest())
->withNamespaceName("namespace-0001")
->withAccessToken("accessToken-0001")
);
$newContextStack = $result->getNewContextStack();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.FreezeMasterDataRequest;
import io.gs2.distributor.result.FreezeMasterDataResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
FreezeMasterDataResult result = client.freezeMasterData(
new FreezeMasterDataRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
);
String newContextStack = result.getNewContextStack();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.FreezeMasterDataResult> asyncResult = null;
yield return client.FreezeMasterData(
new Gs2.Gs2Distributor.Request.FreezeMasterDataRequest()
.WithNamespaceName("namespace-0001")
.WithAccessToken("accessToken-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var newContextStack = result.NewContextStack;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.freezeMasterData(
new Gs2Distributor.FreezeMasterDataRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
);
const newContextStack = result.getNewContextStack();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.freeze_master_data(
distributor.FreezeMasterDataRequest()
.with_namespace_name('namespace-0001')
.with_access_token('accessToken-0001')
)
new_context_stack = result.new_context_stack
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.freeze_master_data({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;client = gs2('distributor')
api_result_handler = client.freeze_master_data_async({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;freezeMasterDataByUserId
ユーザーIDを指定してマスターデータを現在時刻の内容で固定する
指定されたユーザーのマスターデータを現在のタイムスタンプで固定します。
固定タイムスタンプは返される ContextStack に記録され、この ContextStack を後続のリクエストに含めることで、最新版ではなく固定時点のマスターデータが使用されます。
これにより、一連の関連操作中にマスターデータの一貫性が保証され、操作途中の変更がユーザーに影響しません。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| newContextStack | string | マスターデータを固定する時刻を記録したコンテキスト |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.FreezeMasterDataByUserId(
&distributor.FreezeMasterDataByUserIdRequest {
NamespaceName: pointy.String("namespace-0001"),
UserId: pointy.String("user-0001"),
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
newContextStack := result.NewContextStackuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\FreezeMasterDataByUserIdRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->freezeMasterDataByUserId(
(new FreezeMasterDataByUserIdRequest())
->withNamespaceName("namespace-0001")
->withUserId("user-0001")
->withTimeOffsetToken(null)
);
$newContextStack = $result->getNewContextStack();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.FreezeMasterDataByUserIdRequest;
import io.gs2.distributor.result.FreezeMasterDataByUserIdResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
FreezeMasterDataByUserIdResult result = client.freezeMasterDataByUserId(
new FreezeMasterDataByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTimeOffsetToken(null)
);
String newContextStack = result.getNewContextStack();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.FreezeMasterDataByUserIdResult> asyncResult = null;
yield return client.FreezeMasterDataByUserId(
new Gs2.Gs2Distributor.Request.FreezeMasterDataByUserIdRequest()
.WithNamespaceName("namespace-0001")
.WithUserId("user-0001")
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var newContextStack = result.NewContextStack;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.freezeMasterDataByUserId(
new Gs2Distributor.FreezeMasterDataByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTimeOffsetToken(null)
);
const newContextStack = result.getNewContextStack();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.freeze_master_data_by_user_id(
distributor.FreezeMasterDataByUserIdRequest()
.with_namespace_name('namespace-0001')
.with_user_id('user-0001')
.with_time_offset_token(None)
)
new_context_stack = result.new_context_stack
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.freeze_master_data_by_user_id({
namespaceName="namespace-0001",
userId="user-0001",
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;client = gs2('distributor')
api_result_handler = client.freeze_master_data_by_user_id_async({
namespaceName="namespace-0001",
userId="user-0001",
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;signFreezeMasterDataTimestamp
マスターデータ固定用のタイムスタンプに署名する
指定された暗号鍵を使用して、指定されたタイムスタンプの暗号署名を作成します。
返されるボディと署名は、FreezeMasterDataBySignedTimestamp で指定時刻にマスターデータを固定するために使用できます。
これにより、サーバー側で固定タイムスタンプを制御でき、クライアントが任意のタイムスタンプを指定することを防ぎます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| timestamp | long | 現在時刻 | マスターデータを固定化する時刻 | |||
| keyId | string | ✓ | ~ 1024文字 | 署名計算に使用する GS2-Key の暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| body | string | ボディ |
| signature | string | 署名 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.SignFreezeMasterDataTimestamp(
&distributor.SignFreezeMasterDataTimestampRequest {
NamespaceName: pointy.String("namespace-0001"),
Timestamp: pointy.Int64(10000),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
body := result.Body
signature := result.Signatureuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\SignFreezeMasterDataTimestampRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->signFreezeMasterDataTimestamp(
(new SignFreezeMasterDataTimestampRequest())
->withNamespaceName("namespace-0001")
->withTimestamp(10000)
->withKeyId("key-0001")
);
$body = $result->getBody();
$signature = $result->getSignature();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.SignFreezeMasterDataTimestampRequest;
import io.gs2.distributor.result.SignFreezeMasterDataTimestampResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
SignFreezeMasterDataTimestampResult result = client.signFreezeMasterDataTimestamp(
new SignFreezeMasterDataTimestampRequest()
.withNamespaceName("namespace-0001")
.withTimestamp(10000L)
.withKeyId("key-0001")
);
String body = result.getBody();
String signature = result.getSignature();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.SignFreezeMasterDataTimestampResult> asyncResult = null;
yield return client.SignFreezeMasterDataTimestamp(
new Gs2.Gs2Distributor.Request.SignFreezeMasterDataTimestampRequest()
.WithNamespaceName("namespace-0001")
.WithTimestamp(10000L)
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var body = result.Body;
var signature = result.Signature;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.signFreezeMasterDataTimestamp(
new Gs2Distributor.SignFreezeMasterDataTimestampRequest()
.withNamespaceName("namespace-0001")
.withTimestamp(10000)
.withKeyId("key-0001")
);
const body = result.getBody();
const signature = result.getSignature();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.sign_freeze_master_data_timestamp(
distributor.SignFreezeMasterDataTimestampRequest()
.with_namespace_name('namespace-0001')
.with_timestamp(10000)
.with_key_id('key-0001')
)
body = result.body
signature = result.signature
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.sign_freeze_master_data_timestamp({
namespaceName="namespace-0001",
timestamp=10000,
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
body = result.body;
signature = result.signature;client = gs2('distributor')
api_result_handler = client.sign_freeze_master_data_timestamp_async({
namespaceName="namespace-0001",
timestamp=10000,
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
body = result.body;
signature = result.signature;freezeMasterDataBySignedTimestamp
マスターデータを指定された署名付き時刻で固定する
SignFreezeMasterDataTimestamp で事前に署名されたタイムスタンプでマスターデータを固定します。
署名は指定された暗号鍵で検証され、タイムスタンプが改ざんされていないことを確認します。
固定タイムスタンプは返される ContextStack に記録され、後続のリクエストで使用されます。
クライアント側の操作を防止するため、サーバーが正確な固定時刻を制御する必要がある場合に使用します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| accessToken | string | ✓ | ~ 128文字 | アクセストークン | ||
| body | string | ✓ | ~ 1024文字 | ボディ | ||
| signature | string | ✓ | ~ 256文字 | 署名 | ||
| keyId | string | ✓ | ~ 1024文字 | 署名計算に使用した GS2-Key の暗号鍵 GRN |
Result
| 型 | 説明 | |
|---|---|---|
| newContextStack | string | マスターデータを固定する時刻を記録したコンテキスト |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.FreezeMasterDataBySignedTimestamp(
&distributor.FreezeMasterDataBySignedTimestampRequest {
NamespaceName: pointy.String("namespace-0001"),
AccessToken: pointy.String("accessToken-0001"),
Body: pointy.String("body"),
Signature: pointy.String("signature"),
KeyId: pointy.String("key-0001"),
}
)
if err != nil {
panic("error occurred")
}
newContextStack := result.NewContextStackuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\FreezeMasterDataBySignedTimestampRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->freezeMasterDataBySignedTimestamp(
(new FreezeMasterDataBySignedTimestampRequest())
->withNamespaceName("namespace-0001")
->withAccessToken("accessToken-0001")
->withBody("body")
->withSignature("signature")
->withKeyId("key-0001")
);
$newContextStack = $result->getNewContextStack();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.FreezeMasterDataBySignedTimestampRequest;
import io.gs2.distributor.result.FreezeMasterDataBySignedTimestampResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
FreezeMasterDataBySignedTimestampResult result = client.freezeMasterDataBySignedTimestamp(
new FreezeMasterDataBySignedTimestampRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withBody("body")
.withSignature("signature")
.withKeyId("key-0001")
);
String newContextStack = result.getNewContextStack();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.FreezeMasterDataBySignedTimestampResult> asyncResult = null;
yield return client.FreezeMasterDataBySignedTimestamp(
new Gs2.Gs2Distributor.Request.FreezeMasterDataBySignedTimestampRequest()
.WithNamespaceName("namespace-0001")
.WithAccessToken("accessToken-0001")
.WithBody("body")
.WithSignature("signature")
.WithKeyId("key-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var newContextStack = result.NewContextStack;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.freezeMasterDataBySignedTimestamp(
new Gs2Distributor.FreezeMasterDataBySignedTimestampRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withBody("body")
.withSignature("signature")
.withKeyId("key-0001")
);
const newContextStack = result.getNewContextStack();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.freeze_master_data_by_signed_timestamp(
distributor.FreezeMasterDataBySignedTimestampRequest()
.with_namespace_name('namespace-0001')
.with_access_token('accessToken-0001')
.with_body('body')
.with_signature('signature')
.with_key_id('key-0001')
)
new_context_stack = result.new_context_stack
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.freeze_master_data_by_signed_timestamp({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
body="body",
signature="signature",
keyId="key-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;client = gs2('distributor')
api_result_handler = client.freeze_master_data_by_signed_timestamp_async({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
body="body",
signature="signature",
keyId="key-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;freezeMasterDataByTimestamp
マスターデータを指定された時刻で固定する
署名検証なしで直接指定されたタイムスタンプでマスターデータを固定します。
固定タイムスタンプは返される ContextStack に記録され、後続のリクエストで使用されます。
FreezeMasterDataBySignedTimestamp とは異なり、タイムスタンプは暗号的に検証されないため、信頼できるコンテキストでのみ使用してください。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| accessToken | string | ✓ | ~ 128文字 | アクセストークン | ||
| timestamp | long | ✓ | 固定する時刻 |
Result
| 型 | 説明 | |
|---|---|---|
| newContextStack | string | マスターデータを固定する時刻を記録したコンテキスト |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.FreezeMasterDataByTimestamp(
&distributor.FreezeMasterDataByTimestampRequest {
NamespaceName: pointy.String("namespace-0001"),
AccessToken: pointy.String("accessToken-0001"),
Timestamp: pointy.Int64(10000),
}
)
if err != nil {
panic("error occurred")
}
newContextStack := result.NewContextStackuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\FreezeMasterDataByTimestampRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->freezeMasterDataByTimestamp(
(new FreezeMasterDataByTimestampRequest())
->withNamespaceName("namespace-0001")
->withAccessToken("accessToken-0001")
->withTimestamp(10000)
);
$newContextStack = $result->getNewContextStack();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.FreezeMasterDataByTimestampRequest;
import io.gs2.distributor.result.FreezeMasterDataByTimestampResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
FreezeMasterDataByTimestampResult result = client.freezeMasterDataByTimestamp(
new FreezeMasterDataByTimestampRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withTimestamp(10000L)
);
String newContextStack = result.getNewContextStack();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.FreezeMasterDataByTimestampResult> asyncResult = null;
yield return client.FreezeMasterDataByTimestamp(
new Gs2.Gs2Distributor.Request.FreezeMasterDataByTimestampRequest()
.WithNamespaceName("namespace-0001")
.WithAccessToken("accessToken-0001")
.WithTimestamp(10000L),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var newContextStack = result.NewContextStack;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.freezeMasterDataByTimestamp(
new Gs2Distributor.FreezeMasterDataByTimestampRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withTimestamp(10000)
);
const newContextStack = result.getNewContextStack();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.freeze_master_data_by_timestamp(
distributor.FreezeMasterDataByTimestampRequest()
.with_namespace_name('namespace-0001')
.with_access_token('accessToken-0001')
.with_timestamp(10000)
)
new_context_stack = result.new_context_stack
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.freeze_master_data_by_timestamp({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
timestamp=10000,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;client = gs2('distributor')
api_result_handler = client.freeze_master_data_by_timestamp_async({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
timestamp=10000,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
newContextStack = result.newContextStack;batchExecuteApi
複数のAPIを一括で実行する
単一のバッチリクエストで複数のAPI呼び出しを実行し、必要なラウンドトリップ数を削減します。
1回のバッチに最大100件のAPI呼び出しを含めることができます。
バッチ内の各リクエストは独立して処理され、結果はリクエストと同じ順序で返されます。
複数の独立したAPI呼び出しが必要な場合にレイテンシを削減するのに便利です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| requestPayloads | List<BatchRequestPayload> | ✓ | 1 ~ 100 items | バッチリクエスト |
Result
| 型 | 説明 | |
|---|---|---|
| results | List<BatchResultPayload> | バッチリザルト |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.BatchExecuteApi(
&distributor.BatchExecuteApiRequest {
RequestPayloads: []distributor.BatchRequestPayload{
distributor.BatchRequestPayload{
Service: pointy.String("inventory"),
Method: pointy.String("describeSimpleItems"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"inventoryName\": \"inventory-0001\", \"accessToken\": \"accessToken-0001\"}"),
},
distributor.BatchRequestPayload{
Service: pointy.String("exchange"),
Method: pointy.String("describeRateModels"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\"}"),
},
},
}
)
if err != nil {
panic("error occurred")
}
results := result.Resultsuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\BatchExecuteApiRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->batchExecuteApi(
(new BatchExecuteApiRequest())
->withRequestPayloads([
(new BatchRequestPayload())
->withService("inventory")
->withMethod("describeSimpleItems")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"inventoryName\": \"inventory-0001\", \"accessToken\": \"accessToken-0001\"}"),
(new BatchRequestPayload())
->withService("exchange")
->withMethod("describeRateModels")
->withRequest("{\"namespaceName\": \"namespace-0001\"}"),
])
);
$results = $result->getResults();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.BatchExecuteApiRequest;
import io.gs2.distributor.result.BatchExecuteApiResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
BatchExecuteApiResult result = client.batchExecuteApi(
new BatchExecuteApiRequest()
.withRequestPayloads(Arrays.asList(
new BatchRequestPayload()
.withService("inventory")
.withMethod("describeSimpleItems")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"inventoryName\": \"inventory-0001\", \"accessToken\": \"accessToken-0001\"}"),
new BatchRequestPayload()
.withService("exchange")
.withMethod("describeRateModels")
.withRequest("{\"namespaceName\": \"namespace-0001\"}")
))
);
List<BatchResultPayload> results = result.getResults();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.BatchExecuteApiResult> asyncResult = null;
yield return client.BatchExecuteApi(
new Gs2.Gs2Distributor.Request.BatchExecuteApiRequest()
.WithRequestPayloads(new Gs2.Gs2Distributor.Model.BatchRequestPayload[] {
new Gs2.Gs2Distributor.Model.BatchRequestPayload()
.WithService("inventory")
.WithMethod("describeSimpleItems")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"inventoryName\": \"inventory-0001\", \"accessToken\": \"accessToken-0001\"}"),
new Gs2.Gs2Distributor.Model.BatchRequestPayload()
.WithService("exchange")
.WithMethod("describeRateModels")
.WithRequest("{\"namespaceName\": \"namespace-0001\"}"),
}),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var results = result.Results;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.batchExecuteApi(
new Gs2Distributor.BatchExecuteApiRequest()
.withRequestPayloads([
new Gs2Distributor.model.BatchRequestPayload()
.withService("inventory")
.withMethod("describeSimpleItems")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"inventoryName\": \"inventory-0001\", \"accessToken\": \"accessToken-0001\"}"),
new Gs2Distributor.model.BatchRequestPayload()
.withService("exchange")
.withMethod("describeRateModels")
.withRequest("{\"namespaceName\": \"namespace-0001\"}"),
])
);
const results = result.getResults();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.batch_execute_api(
distributor.BatchExecuteApiRequest()
.with_request_payloads([
distributor.BatchRequestPayload()
.with_service('inventory')
.with_method('describeSimpleItems')
.with_request('{"namespaceName": "namespace-0001", "inventoryName": "inventory-0001", "accessToken": "accessToken-0001"}'),
distributor.BatchRequestPayload()
.with_service('exchange')
.with_method('describeRateModels')
.with_request('{"namespaceName": "namespace-0001"}'),
])
)
results = result.results
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.batch_execute_api({
requestPayloads={
{
service="inventory",
method="describeSimpleItems",
request="{\"namespaceName\": \"namespace-0001\", \"inventoryName\": \"inventory-0001\", \"accessToken\": \"accessToken-0001\"}",
},
{
service="exchange",
method="describeRateModels",
request="{\"namespaceName\": \"namespace-0001\"}",
}
},
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
results = result.results;client = gs2('distributor')
api_result_handler = client.batch_execute_api_async({
requestPayloads={
{
service="inventory",
method="describeSimpleItems",
request="{\"namespaceName\": \"namespace-0001\", \"inventoryName\": \"inventory-0001\", \"accessToken\": \"accessToken-0001\"}",
},
{
service="exchange",
method="describeRateModels",
request="{\"namespaceName\": \"namespace-0001\"}",
}
},
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
results = result.results;ifExpressionByUserId
条件を検証し、消費アクションの内容を切り替える
検証アクションを条件として評価し、結果に基づいて trueActions または falseActions の消費アクションリストを実行します。
これによりトランザクション内で条件分岐が可能になり、検証結果に応じて異なる消費アクションを実行できます。
multiplyValueSpecifyingQuantity が有効な場合、検証に使用される値も指定された数量で乗算されます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| condition | VerifyAction | ✓ | 条件 | |||
| trueActions | List<ConsumeAction> | 0 ~ 10 items | 条件が真のときに実行される消費アクションリスト | |||
| falseActions | List<ConsumeAction> | 0 ~ 10 items | 条件が偽のときに実行される消費アクションリスト | |||
| multiplyValueSpecifyingQuantity | bool | true | 数量指定した際に、検証に使用する値も乗算するか | |||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| item | TransactionResult | トランザクションの実行結果 |
| expressionResult | bool? | 条件評価の結果 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.IfExpressionByUserId(
&distributor.IfExpressionByUserIdRequest {
NamespaceName: pointy.String("namespace-0001"),
UserId: pointy.String("user-0001"),
Condition: &distributor.VerifyAction{
Action: pointy.String("Gs2Inventory:VerifyItemSetByUserId"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
},
TrueActions: []distributor.ConsumeAction{
distributor.ConsumeAction{
Action: pointy.String("Gs2Inventory:ConsumeItemSetByUserId"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"consumeCount\": 1}"),
},
},
FalseActions: []distributor.ConsumeAction{
distributor.ConsumeAction{
Action: pointy.String("Gs2Inventory:ConsumeSimpleItemsByUserId"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"consumeCounts\": [{\"itemName\": \"item-0001\", \"count\": 1}]}"),
},
},
MultiplyValueSpecifyingQuantity: nil,
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
item := result.Item
expressionResult := result.ExpressionResultuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\IfExpressionByUserIdRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->ifExpressionByUserId(
(new IfExpressionByUserIdRequest())
->withNamespaceName("namespace-0001")
->withUserId("user-0001")
->withCondition((new VerifyAction())
->withAction("Gs2Inventory:VerifyItemSetByUserId")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}")
)
->withTrueActions([
(new ConsumeAction())
->withAction("Gs2Inventory:ConsumeItemSetByUserId")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"consumeCount\": 1}"),
])
->withFalseActions([
(new ConsumeAction())
->withAction("Gs2Inventory:ConsumeSimpleItemsByUserId")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"consumeCounts\": [{\"itemName\": \"item-0001\", \"count\": 1}]}"),
])
->withMultiplyValueSpecifyingQuantity(null)
->withTimeOffsetToken(null)
);
$item = $result->getItem();
$expressionResult = $result->getExpressionResult();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.IfExpressionByUserIdRequest;
import io.gs2.distributor.result.IfExpressionByUserIdResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
IfExpressionByUserIdResult result = client.ifExpressionByUserId(
new IfExpressionByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withCondition(new VerifyAction()
.withAction("Gs2Inventory:VerifyItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}")
)
.withTrueActions(Arrays.asList(
new ConsumeAction()
.withAction("Gs2Inventory:ConsumeItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"consumeCount\": 1}")
))
.withFalseActions(Arrays.asList(
new ConsumeAction()
.withAction("Gs2Inventory:ConsumeSimpleItemsByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"consumeCounts\": [{\"itemName\": \"item-0001\", \"count\": 1}]}")
))
.withMultiplyValueSpecifyingQuantity(null)
.withTimeOffsetToken(null)
);
TransactionResult item = result.getItem();
boolean expressionResult = result.getExpressionResult();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.IfExpressionByUserIdResult> asyncResult = null;
yield return client.IfExpressionByUserId(
new Gs2.Gs2Distributor.Request.IfExpressionByUserIdRequest()
.WithNamespaceName("namespace-0001")
.WithUserId("user-0001")
.WithCondition(new Gs2.Core.Model.VerifyAction()
.WithAction("Gs2Inventory:VerifyItemSetByUserId")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}")
)
.WithTrueActions(new Gs2.Core.Model.ConsumeAction[] {
new Gs2.Core.Model.ConsumeAction()
.WithAction("Gs2Inventory:ConsumeItemSetByUserId")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"consumeCount\": 1}"),
})
.WithFalseActions(new Gs2.Core.Model.ConsumeAction[] {
new Gs2.Core.Model.ConsumeAction()
.WithAction("Gs2Inventory:ConsumeSimpleItemsByUserId")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"consumeCounts\": [{\"itemName\": \"item-0001\", \"count\": 1}]}"),
})
.WithMultiplyValueSpecifyingQuantity(null)
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;
var expressionResult = result.ExpressionResult;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.ifExpressionByUserId(
new Gs2Distributor.IfExpressionByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withCondition(new Gs2Distributor.model.VerifyAction()
.withAction("Gs2Inventory:VerifyItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}")
)
.withTrueActions([
new Gs2Distributor.model.ConsumeAction()
.withAction("Gs2Inventory:ConsumeItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"consumeCount\": 1}"),
])
.withFalseActions([
new Gs2Distributor.model.ConsumeAction()
.withAction("Gs2Inventory:ConsumeSimpleItemsByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"consumeCounts\": [{\"itemName\": \"item-0001\", \"count\": 1}]}"),
])
.withMultiplyValueSpecifyingQuantity(null)
.withTimeOffsetToken(null)
);
const item = result.getItem();
const expressionResult = result.getExpressionResult();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.if_expression_by_user_id(
distributor.IfExpressionByUserIdRequest()
.with_namespace_name('namespace-0001')
.with_user_id('user-0001')
.with_condition(distributor.VerifyAction()
.with_action('Gs2Inventory:VerifyItemSetByUserId')
.with_request('{"namespaceName": "namespace-0001", "userId": "user-0001", "inventoryName": "inventory-0001", "itemName": "item-0001", "verifyType": "greaterEqual", "count": 1}')
)
.with_true_actions([
distributor.ConsumeAction()
.with_action('Gs2Inventory:ConsumeItemSetByUserId')
.with_request('{"namespaceName": "namespace-0001", "userId": "user-0001", "inventoryName": "inventory-0001", "itemName": "item-0001", "consumeCount": 1}'),
])
.with_false_actions([
distributor.ConsumeAction()
.with_action('Gs2Inventory:ConsumeSimpleItemsByUserId')
.with_request('{"namespaceName": "namespace-0001", "userId": "user-0001", "inventoryName": "inventory-0001", "consumeCounts": [{"itemName": "item-0001", "count": 1}]}'),
])
.with_multiply_value_specifying_quantity(None)
.with_time_offset_token(None)
)
item = result.item
expression_result = result.expression_result
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.if_expression_by_user_id({
namespaceName="namespace-0001",
userId="user-0001",
condition={
action="Gs2Inventory:VerifyItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
},
trueActions={
{
action="Gs2Inventory:ConsumeItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"consumeCount\": 1}",
}
},
falseActions={
{
action="Gs2Inventory:ConsumeSimpleItemsByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"consumeCounts\": [{\"itemName\": \"item-0001\", \"count\": 1}]}",
}
},
multiplyValueSpecifyingQuantity=nil,
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;
expressionResult = result.expressionResult;client = gs2('distributor')
api_result_handler = client.if_expression_by_user_id_async({
namespaceName="namespace-0001",
userId="user-0001",
condition={
action="Gs2Inventory:VerifyItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
},
trueActions={
{
action="Gs2Inventory:ConsumeItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"consumeCount\": 1}",
}
},
falseActions={
{
action="Gs2Inventory:ConsumeSimpleItemsByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"consumeCounts\": [{\"itemName\": \"item-0001\", \"count\": 1}]}",
}
},
multiplyValueSpecifyingQuantity=nil,
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;
expressionResult = result.expressionResult;andExpressionByUserId
複数の検証アクションを実行し、全てが真かどうかを判定する
複数の検証アクションを実行し、すべてが真と評価された場合にのみ成功します(AND論理)。
いずれかの検証アクションが失敗すると、式全体が失敗します。
トランザクションの実行前にすべて満たす必要がある複数の前提条件を組み合わせる場合に便利です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| actions | List<VerifyAction> | 0 ~ 10 items | 検証アクションリスト | |||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 |
|---|
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.AndExpressionByUserId(
&distributor.AndExpressionByUserIdRequest {
NamespaceName: pointy.String("namespace-0001"),
UserId: pointy.String("user-0001"),
Actions: []distributor.VerifyAction{
distributor.VerifyAction{
Action: pointy.String("Gs2Inventory:VerifyItemSetByUserId"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
},
distributor.VerifyAction{
Action: pointy.String("Gs2Inventory:ConsumeItemSetByUserId"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
},
},
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\AndExpressionByUserIdRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->andExpressionByUserId(
(new AndExpressionByUserIdRequest())
->withNamespaceName("namespace-0001")
->withUserId("user-0001")
->withActions([
(new VerifyAction())
->withAction("Gs2Inventory:VerifyItemSetByUserId")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
(new VerifyAction())
->withAction("Gs2Inventory:ConsumeItemSetByUserId")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
])
->withTimeOffsetToken(null)
);
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.AndExpressionByUserIdRequest;
import io.gs2.distributor.result.AndExpressionByUserIdResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
AndExpressionByUserIdResult result = client.andExpressionByUserId(
new AndExpressionByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withActions(Arrays.asList(
new VerifyAction()
.withAction("Gs2Inventory:VerifyItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
new VerifyAction()
.withAction("Gs2Inventory:ConsumeItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}")
))
.withTimeOffsetToken(null)
);
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.AndExpressionByUserIdResult> asyncResult = null;
yield return client.AndExpressionByUserId(
new Gs2.Gs2Distributor.Request.AndExpressionByUserIdRequest()
.WithNamespaceName("namespace-0001")
.WithUserId("user-0001")
.WithActions(new Gs2.Core.Model.VerifyAction[] {
new Gs2.Core.Model.VerifyAction()
.WithAction("Gs2Inventory:VerifyItemSetByUserId")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
new Gs2.Core.Model.VerifyAction()
.WithAction("Gs2Inventory:ConsumeItemSetByUserId")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
})
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.andExpressionByUserId(
new Gs2Distributor.AndExpressionByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withActions([
new Gs2Distributor.model.VerifyAction()
.withAction("Gs2Inventory:VerifyItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
new Gs2Distributor.model.VerifyAction()
.withAction("Gs2Inventory:ConsumeItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
])
.withTimeOffsetToken(null)
);
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.and_expression_by_user_id(
distributor.AndExpressionByUserIdRequest()
.with_namespace_name('namespace-0001')
.with_user_id('user-0001')
.with_actions([
distributor.VerifyAction()
.with_action('Gs2Inventory:VerifyItemSetByUserId')
.with_request('{"namespaceName": "namespace-0001", "userId": "user-0001", "inventoryName": "inventory-0001", "itemName": "item-0001", "verifyType": "greaterEqual", "count": 1}'),
distributor.VerifyAction()
.with_action('Gs2Inventory:ConsumeItemSetByUserId')
.with_request('{"namespaceName": "namespace-0001", "userId": "user-0001", "inventoryName": "inventory-0001", "itemName": "item-0002", "verifyType": "greaterEqual", "count": 1}'),
])
.with_time_offset_token(None)
)
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.and_expression_by_user_id({
namespaceName="namespace-0001",
userId="user-0001",
actions={
{
action="Gs2Inventory:VerifyItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
},
{
action="Gs2Inventory:ConsumeItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
}
},
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.resultclient = gs2('distributor')
api_result_handler = client.and_expression_by_user_id_async({
namespaceName="namespace-0001",
userId="user-0001",
actions={
{
action="Gs2Inventory:VerifyItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
},
{
action="Gs2Inventory:ConsumeItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
}
},
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.resultorExpressionByUserId
複数の検証アクションを実行し、いずれかが真かどうかを判定する
複数の検証アクションを実行し、少なくとも1つが真と評価された場合に成功します(OR論理)。
すべての検証アクションが失敗した場合にのみ式が失敗します。
いずれか1つを満たせば十分な代替条件を定義する場合に便利です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| actions | List<VerifyAction> | 0 ~ 10 items | 検証アクションリスト | |||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 |
|---|
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.OrExpressionByUserId(
&distributor.OrExpressionByUserIdRequest {
NamespaceName: pointy.String("namespace-0001"),
UserId: pointy.String("user-0001"),
Actions: []distributor.VerifyAction{
distributor.VerifyAction{
Action: pointy.String("Gs2Inventory:VerifyItemSetByUserId"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
},
distributor.VerifyAction{
Action: pointy.String("Gs2Inventory:ConsumeItemSetByUserId"),
Request: pointy.String("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
},
},
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}use Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\OrExpressionByUserIdRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->orExpressionByUserId(
(new OrExpressionByUserIdRequest())
->withNamespaceName("namespace-0001")
->withUserId("user-0001")
->withActions([
(new VerifyAction())
->withAction("Gs2Inventory:VerifyItemSetByUserId")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
(new VerifyAction())
->withAction("Gs2Inventory:ConsumeItemSetByUserId")
->withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
])
->withTimeOffsetToken(null)
);
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.OrExpressionByUserIdRequest;
import io.gs2.distributor.result.OrExpressionByUserIdResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
OrExpressionByUserIdResult result = client.orExpressionByUserId(
new OrExpressionByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withActions(Arrays.asList(
new VerifyAction()
.withAction("Gs2Inventory:VerifyItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
new VerifyAction()
.withAction("Gs2Inventory:ConsumeItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}")
))
.withTimeOffsetToken(null)
);
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.OrExpressionByUserIdResult> asyncResult = null;
yield return client.OrExpressionByUserId(
new Gs2.Gs2Distributor.Request.OrExpressionByUserIdRequest()
.WithNamespaceName("namespace-0001")
.WithUserId("user-0001")
.WithActions(new Gs2.Core.Model.VerifyAction[] {
new Gs2.Core.Model.VerifyAction()
.WithAction("Gs2Inventory:VerifyItemSetByUserId")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
new Gs2.Core.Model.VerifyAction()
.WithAction("Gs2Inventory:ConsumeItemSetByUserId")
.WithRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
})
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.orExpressionByUserId(
new Gs2Distributor.OrExpressionByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withActions([
new Gs2Distributor.model.VerifyAction()
.withAction("Gs2Inventory:VerifyItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
new Gs2Distributor.model.VerifyAction()
.withAction("Gs2Inventory:ConsumeItemSetByUserId")
.withRequest("{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}"),
])
.withTimeOffsetToken(null)
);
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.or_expression_by_user_id(
distributor.OrExpressionByUserIdRequest()
.with_namespace_name('namespace-0001')
.with_user_id('user-0001')
.with_actions([
distributor.VerifyAction()
.with_action('Gs2Inventory:VerifyItemSetByUserId')
.with_request('{"namespaceName": "namespace-0001", "userId": "user-0001", "inventoryName": "inventory-0001", "itemName": "item-0001", "verifyType": "greaterEqual", "count": 1}'),
distributor.VerifyAction()
.with_action('Gs2Inventory:ConsumeItemSetByUserId')
.with_request('{"namespaceName": "namespace-0001", "userId": "user-0001", "inventoryName": "inventory-0001", "itemName": "item-0002", "verifyType": "greaterEqual", "count": 1}'),
])
.with_time_offset_token(None)
)
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.or_expression_by_user_id({
namespaceName="namespace-0001",
userId="user-0001",
actions={
{
action="Gs2Inventory:VerifyItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
},
{
action="Gs2Inventory:ConsumeItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
}
},
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.resultclient = gs2('distributor')
api_result_handler = client.or_expression_by_user_id_async({
namespaceName="namespace-0001",
userId="user-0001",
actions={
{
action="Gs2Inventory:VerifyItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0001\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
},
{
action="Gs2Inventory:ConsumeItemSetByUserId",
request="{\"namespaceName\": \"namespace-0001\", \"userId\": \"user-0001\", \"inventoryName\": \"inventory-0001\", \"itemName\": \"item-0002\", \"verifyType\": \"greaterEqual\", \"count\": 1}",
}
},
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.resultgetStampSheetResult
トランザクションの実行結果を取得
現在ログインしているユーザーの特定のトランザクションの実行結果を取得します。
結果には、トランザクションの各フェーズ(検証、消費、入手)のステータスコードとレスポンス内容が含まれます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| accessToken | string | ✓ | ~ 128文字 | アクセストークン | ||
| transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID このトランザクションを一意に識別する UUID です。トランザクションとその実行結果、および連鎖する後続トランザクションの関連付けに使用されます。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | StampSheetResult | トランザクションの実行結果 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetStampSheetResult(
&distributor.GetStampSheetResultRequest {
NamespaceName: pointy.String("namespace-0001"),
AccessToken: pointy.String("accessToken-0001"),
TransactionId: pointy.String("cc1985c3-54f0-4fc3-b295-dc30214284ec"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetStampSheetResultRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getStampSheetResult(
(new GetStampSheetResultRequest())
->withNamespaceName("namespace-0001")
->withAccessToken("accessToken-0001")
->withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetStampSheetResultRequest;
import io.gs2.distributor.result.GetStampSheetResultResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetStampSheetResultResult result = client.getStampSheetResult(
new GetStampSheetResultRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
);
StampSheetResult item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetStampSheetResultResult> asyncResult = null;
yield return client.GetStampSheetResult(
new Gs2.Gs2Distributor.Request.GetStampSheetResultRequest()
.WithNamespaceName("namespace-0001")
.WithAccessToken("accessToken-0001")
.WithTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getStampSheetResult(
new Gs2Distributor.GetStampSheetResultRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_stamp_sheet_result(
distributor.GetStampSheetResultRequest()
.with_namespace_name('namespace-0001')
.with_access_token('accessToken-0001')
.with_transaction_id('cc1985c3-54f0-4fc3-b295-dc30214284ec')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_stamp_sheet_result({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_stamp_sheet_result_async({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;getStampSheetResultByUserId
ユーザーIDを指定してトランザクションの実行結果を取得
指定されたユーザーの特定のトランザクションの実行結果を取得します。
結果には、トランザクションの各フェーズ(検証、消費、入手)のステータスコードとレスポンス内容が含まれます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID このトランザクションを一意に識別する UUID です。トランザクションとその実行結果、および連鎖する後続トランザクションの関連付けに使用されます。 | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| item | StampSheetResult | トランザクションの実行結果 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetStampSheetResultByUserId(
&distributor.GetStampSheetResultByUserIdRequest {
NamespaceName: pointy.String("namespace-0001"),
UserId: pointy.String("user-0001"),
TransactionId: pointy.String("cc1985c3-54f0-4fc3-b295-dc30214284ec"),
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetStampSheetResultByUserIdRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getStampSheetResultByUserId(
(new GetStampSheetResultByUserIdRequest())
->withNamespaceName("namespace-0001")
->withUserId("user-0001")
->withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
->withTimeOffsetToken(null)
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetStampSheetResultByUserIdRequest;
import io.gs2.distributor.result.GetStampSheetResultByUserIdResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetStampSheetResultByUserIdResult result = client.getStampSheetResultByUserId(
new GetStampSheetResultByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
.withTimeOffsetToken(null)
);
StampSheetResult item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetStampSheetResultByUserIdResult> asyncResult = null;
yield return client.GetStampSheetResultByUserId(
new Gs2.Gs2Distributor.Request.GetStampSheetResultByUserIdRequest()
.WithNamespaceName("namespace-0001")
.WithUserId("user-0001")
.WithTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getStampSheetResultByUserId(
new Gs2Distributor.GetStampSheetResultByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
.withTimeOffsetToken(null)
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_stamp_sheet_result_by_user_id(
distributor.GetStampSheetResultByUserIdRequest()
.with_namespace_name('namespace-0001')
.with_user_id('user-0001')
.with_transaction_id('cc1985c3-54f0-4fc3-b295-dc30214284ec')
.with_time_offset_token(None)
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_stamp_sheet_result_by_user_id({
namespaceName="namespace-0001",
userId="user-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_stamp_sheet_result_by_user_id_async({
namespaceName="namespace-0001",
userId="user-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;runTransaction
トランザクションを実行する
検証アクション、消費アクション、入手アクションで構成されるトランザクションを実行します。
トランザクションは検証 -> 消費 -> 入手の順序で処理されます。
各フェーズのステータスコードやレスポンス内容を含む実行結果が記録され、後から取得できます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| transaction | string | ✓ | ~ 5242880文字 | トランザクション | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| item | TransactionResult | トランザクションの実行結果 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.RunTransaction(
&distributor.RunTransactionRequest {
OwnerId: nil,
NamespaceName: pointy.String("namespace-0001"),
UserId: pointy.String("user-0001"),
Transaction: pointy.String("transaction..."),
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\RunTransactionRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->runTransaction(
(new RunTransactionRequest())
->withOwnerId(null)
->withNamespaceName("namespace-0001")
->withUserId("user-0001")
->withTransaction("transaction...")
->withTimeOffsetToken(null)
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.RunTransactionRequest;
import io.gs2.distributor.result.RunTransactionResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
RunTransactionResult result = client.runTransaction(
new RunTransactionRequest()
.withOwnerId(null)
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTransaction("transaction...")
.withTimeOffsetToken(null)
);
TransactionResult item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.RunTransactionResult> asyncResult = null;
yield return client.RunTransaction(
new Gs2.Gs2Distributor.Request.RunTransactionRequest()
.WithOwnerId(null)
.WithNamespaceName("namespace-0001")
.WithUserId("user-0001")
.WithTransaction("transaction...")
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.runTransaction(
new Gs2Distributor.RunTransactionRequest()
.withOwnerId(null)
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTransaction("transaction...")
.withTimeOffsetToken(null)
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.run_transaction(
distributor.RunTransactionRequest()
.with_owner_id(None)
.with_namespace_name('namespace-0001')
.with_user_id('user-0001')
.with_transaction('transaction...')
.with_time_offset_token(None)
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.run_transaction({
ownerId=nil,
namespaceName="namespace-0001",
userId="user-0001",
transaction="transaction...",
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.run_transaction_async({
ownerId=nil,
namespaceName="namespace-0001",
userId="user-0001",
transaction="transaction...",
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;getTransactionResult
トランザクションの実行結果を取得
現在ログインしているユーザーの特定のトランザクションの実行結果を取得します。
結果には、トランザクションの各フェーズ(検証、消費、入手)のステータスコードとレスポンス内容が含まれます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| accessToken | string | ✓ | ~ 128文字 | アクセストークン | ||
| transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID この分散トランザクションを一意に識別する UUID です。実行結果の検索や、元の API リクエストとの関連付けに使用されます。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | TransactionResult | トランザクションの実行結果 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetTransactionResult(
&distributor.GetTransactionResultRequest {
NamespaceName: pointy.String("namespace-0001"),
AccessToken: pointy.String("accessToken-0001"),
TransactionId: pointy.String("cc1985c3-54f0-4fc3-b295-dc30214284ec"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetTransactionResultRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getTransactionResult(
(new GetTransactionResultRequest())
->withNamespaceName("namespace-0001")
->withAccessToken("accessToken-0001")
->withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetTransactionResultRequest;
import io.gs2.distributor.result.GetTransactionResultResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetTransactionResultResult result = client.getTransactionResult(
new GetTransactionResultRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
);
TransactionResult item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetTransactionResultResult> asyncResult = null;
yield return client.GetTransactionResult(
new Gs2.Gs2Distributor.Request.GetTransactionResultRequest()
.WithNamespaceName("namespace-0001")
.WithAccessToken("accessToken-0001")
.WithTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getTransactionResult(
new Gs2Distributor.GetTransactionResultRequest()
.withNamespaceName("namespace-0001")
.withAccessToken("accessToken-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_transaction_result(
distributor.GetTransactionResultRequest()
.with_namespace_name('namespace-0001')
.with_access_token('accessToken-0001')
.with_transaction_id('cc1985c3-54f0-4fc3-b295-dc30214284ec')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_transaction_result({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_transaction_result_async({
namespaceName="namespace-0001",
accessToken="accessToken-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;getTransactionResultByUserId
ユーザーIDを指定してトランザクションの実行結果を取得
指定されたユーザーの特定のトランザクションの実行結果を取得します。
結果には、トランザクションの各フェーズ(検証、消費、入手)のステータスコードとレスポンス内容が含まれます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| userId | string | ✓ | ~ 128文字 | ユーザーID | ||
| transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID この分散トランザクションを一意に識別する UUID です。実行結果の検索や、元の API リクエストとの関連付けに使用されます。 | ||
| timeOffsetToken | string | ~ 1024文字 | タイムオフセットトークン |
Result
| 型 | 説明 | |
|---|---|---|
| item | TransactionResult | トランザクションの実行結果 |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetTransactionResultByUserId(
&distributor.GetTransactionResultByUserIdRequest {
NamespaceName: pointy.String("namespace-0001"),
UserId: pointy.String("user-0001"),
TransactionId: pointy.String("cc1985c3-54f0-4fc3-b295-dc30214284ec"),
TimeOffsetToken: nil,
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetTransactionResultByUserIdRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getTransactionResultByUserId(
(new GetTransactionResultByUserIdRequest())
->withNamespaceName("namespace-0001")
->withUserId("user-0001")
->withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
->withTimeOffsetToken(null)
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetTransactionResultByUserIdRequest;
import io.gs2.distributor.result.GetTransactionResultByUserIdResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetTransactionResultByUserIdResult result = client.getTransactionResultByUserId(
new GetTransactionResultByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
.withTimeOffsetToken(null)
);
TransactionResult item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetTransactionResultByUserIdResult> asyncResult = null;
yield return client.GetTransactionResultByUserId(
new Gs2.Gs2Distributor.Request.GetTransactionResultByUserIdRequest()
.WithNamespaceName("namespace-0001")
.WithUserId("user-0001")
.WithTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
.WithTimeOffsetToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getTransactionResultByUserId(
new Gs2Distributor.GetTransactionResultByUserIdRequest()
.withNamespaceName("namespace-0001")
.withUserId("user-0001")
.withTransactionId("cc1985c3-54f0-4fc3-b295-dc30214284ec")
.withTimeOffsetToken(null)
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_transaction_result_by_user_id(
distributor.GetTransactionResultByUserIdRequest()
.with_namespace_name('namespace-0001')
.with_user_id('user-0001')
.with_transaction_id('cc1985c3-54f0-4fc3-b295-dc30214284ec')
.with_time_offset_token(None)
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_transaction_result_by_user_id({
namespaceName="namespace-0001",
userId="user-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
timeOffsetToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_transaction_result_by_user_id_async({
namespaceName="namespace-0001",
userId="user-0001",
transactionId="cc1985c3-54f0-4fc3-b295-dc30214284ec",
timeOffsetToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;describeDistributorModels
配信モデルの一覧を取得
指定されたネームスペースで現在有効化(公開)されているすべての配信モデルを取得します。
配信モデルは、リソース配信のルールを定義し、溢れた場合の転送先となるプレゼントボックスのネームスペースや、対象となるサービスアクションのホワイトリストを含みます。
現在のマスターデータを通じて有効化されたモデルのみが返され、編集可能なマスターデータは含まれません。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| items | List<DistributorModel> | 配信モデルのリスト |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.DescribeDistributorModels(
&distributor.DescribeDistributorModelsRequest {
NamespaceName: pointy.String("namespace-0001"),
}
)
if err != nil {
panic("error occurred")
}
items := result.Itemsuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\DescribeDistributorModelsRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->describeDistributorModels(
(new DescribeDistributorModelsRequest())
->withNamespaceName("namespace-0001")
);
$items = $result->getItems();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.DescribeDistributorModelsRequest;
import io.gs2.distributor.result.DescribeDistributorModelsResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
DescribeDistributorModelsResult result = client.describeDistributorModels(
new DescribeDistributorModelsRequest()
.withNamespaceName("namespace-0001")
);
List<DistributorModel> items = result.getItems();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.DescribeDistributorModelsResult> asyncResult = null;
yield return client.DescribeDistributorModels(
new Gs2.Gs2Distributor.Request.DescribeDistributorModelsRequest()
.WithNamespaceName("namespace-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var items = result.Items;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.describeDistributorModels(
new Gs2Distributor.DescribeDistributorModelsRequest()
.withNamespaceName("namespace-0001")
);
const items = result.getItems();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.describe_distributor_models(
distributor.DescribeDistributorModelsRequest()
.with_namespace_name('namespace-0001')
)
items = result.items
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.describe_distributor_models({
namespaceName="namespace-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
items = result.items;client = gs2('distributor')
api_result_handler = client.describe_distributor_models_async({
namespaceName="namespace-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
items = result.items;getDistributorModel
配信モデルを取得
名前を指定して、特定の有効な配信モデルの詳細情報を取得します。
返される情報には、モデルの名前、メタデータ、溢れ処理用のプレゼントボックスのネームスペース、対象サービスアクションのホワイトリストが含まれます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| distributorName | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | DistributorModel | 配信モデル |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetDistributorModel(
&distributor.GetDistributorModelRequest {
NamespaceName: pointy.String("namespace-0001"),
DistributorName: pointy.String("distributor-model-0001"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetDistributorModelRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getDistributorModel(
(new GetDistributorModelRequest())
->withNamespaceName("namespace-0001")
->withDistributorName("distributor-model-0001")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetDistributorModelRequest;
import io.gs2.distributor.result.GetDistributorModelResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetDistributorModelResult result = client.getDistributorModel(
new GetDistributorModelRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
);
DistributorModel item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetDistributorModelResult> asyncResult = null;
yield return client.GetDistributorModel(
new Gs2.Gs2Distributor.Request.GetDistributorModelRequest()
.WithNamespaceName("namespace-0001")
.WithDistributorName("distributor-model-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getDistributorModel(
new Gs2Distributor.GetDistributorModelRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_distributor_model(
distributor.GetDistributorModelRequest()
.with_namespace_name('namespace-0001')
.with_distributor_name('distributor-model-0001')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_distributor_model({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_distributor_model_async({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;exportMaster
配信モデルマスターを有効化可能なマスターデータ形式でエクスポート
現在の配信モデルマスターデータを有効化に使用できる形式でエクスポートします。
エクスポートされたデータは、現在のマスター構成のバックアップや別のネームスペースへのインポートに使用できます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | CurrentDistributorMaster | 有効化可能な配信モデルのマスターデータ |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.ExportMaster(
&distributor.ExportMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\ExportMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->exportMaster(
(new ExportMasterRequest())
->withNamespaceName("namespace-0001")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.ExportMasterRequest;
import io.gs2.distributor.result.ExportMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
ExportMasterResult result = client.exportMaster(
new ExportMasterRequest()
.withNamespaceName("namespace-0001")
);
CurrentDistributorMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.ExportMasterResult> asyncResult = null;
yield return client.ExportMaster(
new Gs2.Gs2Distributor.Request.ExportMasterRequest()
.WithNamespaceName("namespace-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.exportMaster(
new Gs2Distributor.ExportMasterRequest()
.withNamespaceName("namespace-0001")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.export_master(
distributor.ExportMasterRequest()
.with_namespace_name('namespace-0001')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.export_master({
namespaceName="namespace-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.export_master_async({
namespaceName="namespace-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;getCurrentDistributorMaster
現在アクティブな配信モデルのマスターデータを取得
指定されたネームスペースで現在有効化(公開)されている配信モデルのマスターデータを取得します。
これは編集可能なマスターデータとは異なり、実際に本番で使用されている構成を表します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | CurrentDistributorMaster | 現在アクティブな配信モデルのマスターデータ |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetCurrentDistributorMaster(
&distributor.GetCurrentDistributorMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetCurrentDistributorMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getCurrentDistributorMaster(
(new GetCurrentDistributorMasterRequest())
->withNamespaceName("namespace-0001")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetCurrentDistributorMasterRequest;
import io.gs2.distributor.result.GetCurrentDistributorMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetCurrentDistributorMasterResult result = client.getCurrentDistributorMaster(
new GetCurrentDistributorMasterRequest()
.withNamespaceName("namespace-0001")
);
CurrentDistributorMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetCurrentDistributorMasterResult> asyncResult = null;
yield return client.GetCurrentDistributorMaster(
new Gs2.Gs2Distributor.Request.GetCurrentDistributorMasterRequest()
.WithNamespaceName("namespace-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getCurrentDistributorMaster(
new Gs2Distributor.GetCurrentDistributorMasterRequest()
.withNamespaceName("namespace-0001")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_current_distributor_master(
distributor.GetCurrentDistributorMasterRequest()
.with_namespace_name('namespace-0001')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_current_distributor_master({
namespaceName="namespace-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_current_distributor_master_async({
namespaceName="namespace-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;preUpdateCurrentDistributorMaster
現在アクティブな配信モデルのマスターデータを更新(3フェーズ版)
1MBを超えるマスターデータをアップロードする場合は、3フェーズで更新を行います。
- このAPIを実行し、アップロード用のトークンとURLを取得します。
- 取得したURLに対して、マスターデータをアップロードします。
- UpdateCurrentModelMaster にアップロードで取得したトークンを渡して実行し、マスターデータを反映します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| uploadToken | string | アップロード後に結果を反映する際に使用するトークン |
| uploadUrl | string | アップロード処理の実行に使用するURL |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.PreUpdateCurrentDistributorMaster(
&distributor.PreUpdateCurrentDistributorMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
}
)
if err != nil {
panic("error occurred")
}
uploadToken := result.UploadToken
uploadUrl := result.UploadUrluse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\PreUpdateCurrentDistributorMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->preUpdateCurrentDistributorMaster(
(new PreUpdateCurrentDistributorMasterRequest())
->withNamespaceName("namespace-0001")
);
$uploadToken = $result->getUploadToken();
$uploadUrl = $result->getUploadUrl();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.PreUpdateCurrentDistributorMasterRequest;
import io.gs2.distributor.result.PreUpdateCurrentDistributorMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
PreUpdateCurrentDistributorMasterResult result = client.preUpdateCurrentDistributorMaster(
new PreUpdateCurrentDistributorMasterRequest()
.withNamespaceName("namespace-0001")
);
String uploadToken = result.getUploadToken();
String uploadUrl = result.getUploadUrl();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.PreUpdateCurrentDistributorMasterResult> asyncResult = null;
yield return client.PreUpdateCurrentDistributorMaster(
new Gs2.Gs2Distributor.Request.PreUpdateCurrentDistributorMasterRequest()
.WithNamespaceName("namespace-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var uploadToken = result.UploadToken;
var uploadUrl = result.UploadUrl;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.preUpdateCurrentDistributorMaster(
new Gs2Distributor.PreUpdateCurrentDistributorMasterRequest()
.withNamespaceName("namespace-0001")
);
const uploadToken = result.getUploadToken();
const uploadUrl = result.getUploadUrl();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.pre_update_current_distributor_master(
distributor.PreUpdateCurrentDistributorMasterRequest()
.with_namespace_name('namespace-0001')
)
upload_token = result.upload_token
upload_url = result.upload_url
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.pre_update_current_distributor_master({
namespaceName="namespace-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
uploadToken = result.uploadToken;
uploadUrl = result.uploadUrl;client = gs2('distributor')
api_result_handler = client.pre_update_current_distributor_master_async({
namespaceName="namespace-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
uploadToken = result.uploadToken;
uploadUrl = result.uploadUrl;updateCurrentDistributorMaster
現在アクティブな配信モデルのマスターデータを更新
指定されたネームスペースの配信モデルのマスターデータを更新し有効化(公開)します。
2つのモードをサポートしています:インラインのマスターデータ用の ‘direct’ モードと、事前にアップロードされたマスターデータ用の ‘preUpload’ モードです。
1MBを超えるマスターデータの場合は、3フェーズの更新フロー(PreUpdate -> アップロード -> Update(preUpload モード))を使用してください。
アップロードされたマスターデータは適用前に検証されます。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||||||||
| mode | 文字列列挙型 enum { “direct”, “preUpload” } | “direct” | 更新モード
| |||||||||
| settings | string | {mode} == “direct” | ✓※ | ~ 5242880文字 | マスターデータ ※ mode が “direct” であれば必須 | |||||||
| uploadToken | string | {mode} == “preUpload” | ✓※ | ~ 1024文字 | 事前アップロードで取得したトークン アップロードしたマスターデータを適用するために使用されます。 ※ mode が “preUpload” であれば必須 |
Result
| 型 | 説明 | |
|---|---|---|
| item | CurrentDistributorMaster | 更新された現在アクティブな配信モデルのマスターデータ |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.UpdateCurrentDistributorMaster(
&distributor.UpdateCurrentDistributorMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
Mode: pointy.String("direct"),
Settings: pointy.String("{\n \"version\": \"2019-03-01\",\n \"distributorModels\": [\n {\n \"name\": \"basic\",\n \"metadata\": \"BASIC\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\"\n },\n {\n \"name\": \"special\",\n \"metadata\": \"SPECIAL\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\",\n \"whiteListTargetIds\": [\n \"test\"\n ]\n }\n ]\n}"),
UploadToken: nil,
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\UpdateCurrentDistributorMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->updateCurrentDistributorMaster(
(new UpdateCurrentDistributorMasterRequest())
->withNamespaceName("namespace-0001")
->withMode("direct")
->withSettings("{\n \"version\": \"2019-03-01\",\n \"distributorModels\": [\n {\n \"name\": \"basic\",\n \"metadata\": \"BASIC\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\"\n },\n {\n \"name\": \"special\",\n \"metadata\": \"SPECIAL\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\",\n \"whiteListTargetIds\": [\n \"test\"\n ]\n }\n ]\n}")
->withUploadToken(null)
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.UpdateCurrentDistributorMasterRequest;
import io.gs2.distributor.result.UpdateCurrentDistributorMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
UpdateCurrentDistributorMasterResult result = client.updateCurrentDistributorMaster(
new UpdateCurrentDistributorMasterRequest()
.withNamespaceName("namespace-0001")
.withMode("direct")
.withSettings("{\n \"version\": \"2019-03-01\",\n \"distributorModels\": [\n {\n \"name\": \"basic\",\n \"metadata\": \"BASIC\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\"\n },\n {\n \"name\": \"special\",\n \"metadata\": \"SPECIAL\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\",\n \"whiteListTargetIds\": [\n \"test\"\n ]\n }\n ]\n}")
.withUploadToken(null)
);
CurrentDistributorMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.UpdateCurrentDistributorMasterResult> asyncResult = null;
yield return client.UpdateCurrentDistributorMaster(
new Gs2.Gs2Distributor.Request.UpdateCurrentDistributorMasterRequest()
.WithNamespaceName("namespace-0001")
.WithMode("direct")
.WithSettings("{\n \"version\": \"2019-03-01\",\n \"distributorModels\": [\n {\n \"name\": \"basic\",\n \"metadata\": \"BASIC\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\"\n },\n {\n \"name\": \"special\",\n \"metadata\": \"SPECIAL\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\",\n \"whiteListTargetIds\": [\n \"test\"\n ]\n }\n ]\n}")
.WithUploadToken(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.updateCurrentDistributorMaster(
new Gs2Distributor.UpdateCurrentDistributorMasterRequest()
.withNamespaceName("namespace-0001")
.withMode("direct")
.withSettings("{\n \"version\": \"2019-03-01\",\n \"distributorModels\": [\n {\n \"name\": \"basic\",\n \"metadata\": \"BASIC\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\"\n },\n {\n \"name\": \"special\",\n \"metadata\": \"SPECIAL\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\",\n \"whiteListTargetIds\": [\n \"test\"\n ]\n }\n ]\n}")
.withUploadToken(null)
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.update_current_distributor_master(
distributor.UpdateCurrentDistributorMasterRequest()
.with_namespace_name('namespace-0001')
.with_mode('direct')
.with_settings('{\n "version": "2019-03-01",\n "distributorModels": [\n {\n "name": "basic",\n "metadata": "BASIC",\n "inboxNamespaceId": "grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001"\n },\n {\n "name": "special",\n "metadata": "SPECIAL",\n "inboxNamespaceId": "grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001",\n "whiteListTargetIds": [\n "test"\n ]\n }\n ]\n}')
.with_upload_token(None)
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.update_current_distributor_master({
namespaceName="namespace-0001",
mode="direct",
settings="{\n \"version\": \"2019-03-01\",\n \"distributorModels\": [\n {\n \"name\": \"basic\",\n \"metadata\": \"BASIC\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\"\n },\n {\n \"name\": \"special\",\n \"metadata\": \"SPECIAL\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\",\n \"whiteListTargetIds\": [\n \"test\"\n ]\n }\n ]\n}",
uploadToken=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.update_current_distributor_master_async({
namespaceName="namespace-0001",
mode="direct",
settings="{\n \"version\": \"2019-03-01\",\n \"distributorModels\": [\n {\n \"name\": \"basic\",\n \"metadata\": \"BASIC\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\"\n },\n {\n \"name\": \"special\",\n \"metadata\": \"SPECIAL\",\n \"inboxNamespaceId\": \"grn:gs2:ap-northeast-1:YourOwnerId:inbox:inbox-0001\",\n \"whiteListTargetIds\": [\n \"test\"\n ]\n }\n ]\n}",
uploadToken=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;updateCurrentDistributorMasterFromGitHub
現在アクティブな配信モデルのマスターデータをGitHubから更新
GitHub リポジトリから直接マスターデータを取得して更新・有効化(公開)します。
チェックアウト設定には、使用するリポジトリ、ブランチ/タグ、ファイルパスを指定します。
マスターデータをバージョン管理で管理し、直接デプロイする場合に便利です。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| checkoutSetting | GitHubCheckoutSetting | ✓ | GitHubからマスターデータをチェックアウトする設定 |
Result
| 型 | 説明 | |
|---|---|---|
| item | CurrentDistributorMaster | 更新された現在アクティブな配信モデルのマスターデータ |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.UpdateCurrentDistributorMasterFromGitHub(
&distributor.UpdateCurrentDistributorMasterFromGitHubRequest {
NamespaceName: pointy.String("namespace-0001"),
CheckoutSetting: &distributor.GitHubCheckoutSetting{
ApiKeyId: pointy.String("apiKeyId-0001"),
RepositoryName: pointy.String("gs2io/master-data"),
SourcePath: pointy.String("path/to/file.json"),
ReferenceType: pointy.String("branch"),
BranchName: pointy.String("develop"),
},
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\UpdateCurrentDistributorMasterFromGitHubRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->updateCurrentDistributorMasterFromGitHub(
(new UpdateCurrentDistributorMasterFromGitHubRequest())
->withNamespaceName("namespace-0001")
->withCheckoutSetting((new GitHubCheckoutSetting())
->withApiKeyId("apiKeyId-0001")
->withRepositoryName("gs2io/master-data")
->withSourcePath("path/to/file.json")
->withReferenceType("branch")
->withBranchName("develop")
)
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.UpdateCurrentDistributorMasterFromGitHubRequest;
import io.gs2.distributor.result.UpdateCurrentDistributorMasterFromGitHubResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
UpdateCurrentDistributorMasterFromGitHubResult result = client.updateCurrentDistributorMasterFromGitHub(
new UpdateCurrentDistributorMasterFromGitHubRequest()
.withNamespaceName("namespace-0001")
.withCheckoutSetting(new GitHubCheckoutSetting()
.withApiKeyId("apiKeyId-0001")
.withRepositoryName("gs2io/master-data")
.withSourcePath("path/to/file.json")
.withReferenceType("branch")
.withBranchName("develop")
)
);
CurrentDistributorMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.UpdateCurrentDistributorMasterFromGitHubResult> asyncResult = null;
yield return client.UpdateCurrentDistributorMasterFromGitHub(
new Gs2.Gs2Distributor.Request.UpdateCurrentDistributorMasterFromGitHubRequest()
.WithNamespaceName("namespace-0001")
.WithCheckoutSetting(new Gs2.Gs2Distributor.Model.GitHubCheckoutSetting()
.WithApiKeyId("apiKeyId-0001")
.WithRepositoryName("gs2io/master-data")
.WithSourcePath("path/to/file.json")
.WithReferenceType("branch")
.WithBranchName("develop")
),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.updateCurrentDistributorMasterFromGitHub(
new Gs2Distributor.UpdateCurrentDistributorMasterFromGitHubRequest()
.withNamespaceName("namespace-0001")
.withCheckoutSetting(new Gs2Distributor.model.GitHubCheckoutSetting()
.withApiKeyId("apiKeyId-0001")
.withRepositoryName("gs2io/master-data")
.withSourcePath("path/to/file.json")
.withReferenceType("branch")
.withBranchName("develop")
)
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.update_current_distributor_master_from_git_hub(
distributor.UpdateCurrentDistributorMasterFromGitHubRequest()
.with_namespace_name('namespace-0001')
.with_checkout_setting(distributor.GitHubCheckoutSetting()
.with_api_key_id('apiKeyId-0001')
.with_repository_name('gs2io/master-data')
.with_source_path('path/to/file.json')
.with_reference_type('branch')
.with_branch_name('develop')
)
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.update_current_distributor_master_from_git_hub({
namespaceName="namespace-0001",
checkoutSetting={
api_key_id="apiKeyId-0001",
repository_name="gs2io/master-data",
source_path="path/to/file.json",
reference_type="branch",
branch_name="develop",
},
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.update_current_distributor_master_from_git_hub_async({
namespaceName="namespace-0001",
checkoutSetting={
api_key_id="apiKeyId-0001",
repository_name="gs2io/master-data",
source_path="path/to/file.json",
reference_type="branch",
branch_name="develop",
},
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;describeDistributorModelMasters
配信モデルマスターの一覧を取得
名前の接頭辞フィルタリングが可能な、編集可能な配信モデルマスターのページネーション付きリストを取得します。
配信モデルマスターはリソース配信ルールの編集可能な定義です。マスターへの変更は、CurrentDistributorMaster API でマスターデータを有効化するまで反映されません。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| namePrefix | string | ~ 64文字 | 配信モデルマスター名のフィルター接頭辞 | |||
| pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | |||
| limit | int | 30 | 1 ~ 1000 | データの取得件数 |
Result
| 型 | 説明 | |
|---|---|---|
| items | List<DistributorModelMaster> | 配信モデルマスターのリスト |
| nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.DescribeDistributorModelMasters(
&distributor.DescribeDistributorModelMastersRequest {
NamespaceName: pointy.String("namespace-0001"),
NamePrefix: nil,
PageToken: nil,
Limit: nil,
}
)
if err != nil {
panic("error occurred")
}
items := result.Items
nextPageToken := result.NextPageTokenuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\DescribeDistributorModelMastersRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->describeDistributorModelMasters(
(new DescribeDistributorModelMastersRequest())
->withNamespaceName("namespace-0001")
->withNamePrefix(null)
->withPageToken(null)
->withLimit(null)
);
$items = $result->getItems();
$nextPageToken = $result->getNextPageToken();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.DescribeDistributorModelMastersRequest;
import io.gs2.distributor.result.DescribeDistributorModelMastersResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
DescribeDistributorModelMastersResult result = client.describeDistributorModelMasters(
new DescribeDistributorModelMastersRequest()
.withNamespaceName("namespace-0001")
.withNamePrefix(null)
.withPageToken(null)
.withLimit(null)
);
List<DistributorModelMaster> items = result.getItems();
String nextPageToken = result.getNextPageToken();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.DescribeDistributorModelMastersResult> asyncResult = null;
yield return client.DescribeDistributorModelMasters(
new Gs2.Gs2Distributor.Request.DescribeDistributorModelMastersRequest()
.WithNamespaceName("namespace-0001")
.WithNamePrefix(null)
.WithPageToken(null)
.WithLimit(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var items = result.Items;
var nextPageToken = result.NextPageToken;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.describeDistributorModelMasters(
new Gs2Distributor.DescribeDistributorModelMastersRequest()
.withNamespaceName("namespace-0001")
.withNamePrefix(null)
.withPageToken(null)
.withLimit(null)
);
const items = result.getItems();
const nextPageToken = result.getNextPageToken();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.describe_distributor_model_masters(
distributor.DescribeDistributorModelMastersRequest()
.with_namespace_name('namespace-0001')
.with_name_prefix(None)
.with_page_token(None)
.with_limit(None)
)
items = result.items
next_page_token = result.next_page_token
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.describe_distributor_model_masters({
namespaceName="namespace-0001",
namePrefix=nil,
pageToken=nil,
limit=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
items = result.items;
nextPageToken = result.nextPageToken;client = gs2('distributor')
api_result_handler = client.describe_distributor_model_masters_async({
namespaceName="namespace-0001",
namePrefix=nil,
pageToken=nil,
limit=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
items = result.items;
nextPageToken = result.nextPageToken;createDistributorModelMaster
配信モデルマスターを新規作成
名前、説明、メタデータ、溢れ処理用のプレゼントボックスのネームスペース、対象サービスアクションのホワイトリストを指定して、新しい編集可能な配信モデルマスター定義を作成します。
プレゼントボックスのネームスペースは、ユーザーの所持品がキャパシティを超えた場合にリソースが転送される先を指定します。
ホワイトリストは、このモデルを通じて配信が許可されるサービスアクションを制限します。
変更は CurrentDistributorMaster API でマスターデータを有効化するまで反映されません。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| name | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| description | string | ~ 1024文字 | 説明文 | |||
| metadata | string | ~ 2048文字 | メタデータ メタデータには任意の値を設定できます。 これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 | |||
| inboxNamespaceId | string | ~ 1024文字 | あふれたリソースを転送する GS2-Inbox のネームスペース GRN | |||
| whiteListTargetIds | List<string> | [] | 0 ~ 1000 items | GS2-Distributorを通して処理出来る対象のリソースGRNのホワイトリスト この配信モデルを使用して入手処理を行える対象となるリソースのGRNプレフィックスを指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | DistributorModelMaster | 作成した配信モデルマスター |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.CreateDistributorModelMaster(
&distributor.CreateDistributorModelMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
Name: pointy.String("distributor-model-0001"),
Description: nil,
Metadata: nil,
InboxNamespaceId: nil,
WhiteListTargetIds: nil,
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\CreateDistributorModelMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->createDistributorModelMaster(
(new CreateDistributorModelMasterRequest())
->withNamespaceName("namespace-0001")
->withName("distributor-model-0001")
->withDescription(null)
->withMetadata(null)
->withInboxNamespaceId(null)
->withWhiteListTargetIds(null)
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.CreateDistributorModelMasterRequest;
import io.gs2.distributor.result.CreateDistributorModelMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
CreateDistributorModelMasterResult result = client.createDistributorModelMaster(
new CreateDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withName("distributor-model-0001")
.withDescription(null)
.withMetadata(null)
.withInboxNamespaceId(null)
.withWhiteListTargetIds(null)
);
DistributorModelMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.CreateDistributorModelMasterResult> asyncResult = null;
yield return client.CreateDistributorModelMaster(
new Gs2.Gs2Distributor.Request.CreateDistributorModelMasterRequest()
.WithNamespaceName("namespace-0001")
.WithName("distributor-model-0001")
.WithDescription(null)
.WithMetadata(null)
.WithInboxNamespaceId(null)
.WithWhiteListTargetIds(null),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.createDistributorModelMaster(
new Gs2Distributor.CreateDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withName("distributor-model-0001")
.withDescription(null)
.withMetadata(null)
.withInboxNamespaceId(null)
.withWhiteListTargetIds(null)
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.create_distributor_model_master(
distributor.CreateDistributorModelMasterRequest()
.with_namespace_name('namespace-0001')
.with_name('distributor-model-0001')
.with_description(None)
.with_metadata(None)
.with_inbox_namespace_id(None)
.with_white_list_target_ids(None)
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.create_distributor_model_master({
namespaceName="namespace-0001",
name="distributor-model-0001",
description=nil,
metadata=nil,
inboxNamespaceId=nil,
whiteListTargetIds=nil,
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.create_distributor_model_master_async({
namespaceName="namespace-0001",
name="distributor-model-0001",
description=nil,
metadata=nil,
inboxNamespaceId=nil,
whiteListTargetIds=nil,
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;getDistributorModelMaster
配信モデルマスターを取得
名前を指定して、特定の編集可能な配信モデルマスターの詳細情報を取得します。
有効化前のマスター定義の閲覧・編集に使用します。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| distributorName | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | DistributorModelMaster | 配信モデルマスター |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.GetDistributorModelMaster(
&distributor.GetDistributorModelMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
DistributorName: pointy.String("distributor-model-0001"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\GetDistributorModelMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->getDistributorModelMaster(
(new GetDistributorModelMasterRequest())
->withNamespaceName("namespace-0001")
->withDistributorName("distributor-model-0001")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.GetDistributorModelMasterRequest;
import io.gs2.distributor.result.GetDistributorModelMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
GetDistributorModelMasterResult result = client.getDistributorModelMaster(
new GetDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
);
DistributorModelMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.GetDistributorModelMasterResult> asyncResult = null;
yield return client.GetDistributorModelMaster(
new Gs2.Gs2Distributor.Request.GetDistributorModelMasterRequest()
.WithNamespaceName("namespace-0001")
.WithDistributorName("distributor-model-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.getDistributorModelMaster(
new Gs2Distributor.GetDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.get_distributor_model_master(
distributor.GetDistributorModelMasterRequest()
.with_namespace_name('namespace-0001')
.with_distributor_name('distributor-model-0001')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.get_distributor_model_master({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.get_distributor_model_master_async({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;updateDistributorModelMaster
配信モデルマスターを更新
既存の配信モデルマスターの説明、メタデータ、プレゼントボックスのネームスペース、ホワイトリストを更新します。
配信モデル名は作成後に変更できません。
変更は CurrentDistributorMaster API でマスターデータを再度有効化するまで反映されません。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| distributorName | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| description | string | ~ 1024文字 | 説明文 | |||
| metadata | string | ~ 2048文字 | メタデータ メタデータには任意の値を設定できます。 これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 | |||
| inboxNamespaceId | string | ~ 1024文字 | あふれたリソースを転送する GS2-Inbox のネームスペース GRN | |||
| whiteListTargetIds | List<string> | [] | 0 ~ 1000 items | GS2-Distributorを通して処理出来る対象のリソースGRNのホワイトリスト この配信モデルを使用して入手処理を行える対象となるリソースのGRNプレフィックスを指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | DistributorModelMaster | 更新した配信モデルマスター |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.UpdateDistributorModelMaster(
&distributor.UpdateDistributorModelMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
DistributorName: pointy.String("distributor-model-0001"),
Description: pointy.String("description1"),
Metadata: pointy.String("{\"hoge\": \"fuga\"}"),
InboxNamespaceId: pointy.String("inbox-0001"),
WhiteListTargetIds: []*string{
pointy.String("grn:AAA"),
pointy.String("grn:BBB"),
},
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\UpdateDistributorModelMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->updateDistributorModelMaster(
(new UpdateDistributorModelMasterRequest())
->withNamespaceName("namespace-0001")
->withDistributorName("distributor-model-0001")
->withDescription("description1")
->withMetadata("{\"hoge\": \"fuga\"}")
->withInboxNamespaceId("inbox-0001")
->withWhiteListTargetIds([
"grn:AAA",
"grn:BBB",
])
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.UpdateDistributorModelMasterRequest;
import io.gs2.distributor.result.UpdateDistributorModelMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
UpdateDistributorModelMasterResult result = client.updateDistributorModelMaster(
new UpdateDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
.withDescription("description1")
.withMetadata("{\"hoge\": \"fuga\"}")
.withInboxNamespaceId("inbox-0001")
.withWhiteListTargetIds(Arrays.asList(
"grn:AAA",
"grn:BBB"
))
);
DistributorModelMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.UpdateDistributorModelMasterResult> asyncResult = null;
yield return client.UpdateDistributorModelMaster(
new Gs2.Gs2Distributor.Request.UpdateDistributorModelMasterRequest()
.WithNamespaceName("namespace-0001")
.WithDistributorName("distributor-model-0001")
.WithDescription("description1")
.WithMetadata("{\"hoge\": \"fuga\"}")
.WithInboxNamespaceId("inbox-0001")
.WithWhiteListTargetIds(new string[] {
"grn:AAA",
"grn:BBB",
}),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.updateDistributorModelMaster(
new Gs2Distributor.UpdateDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
.withDescription("description1")
.withMetadata("{\"hoge\": \"fuga\"}")
.withInboxNamespaceId("inbox-0001")
.withWhiteListTargetIds([
"grn:AAA",
"grn:BBB",
])
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.update_distributor_model_master(
distributor.UpdateDistributorModelMasterRequest()
.with_namespace_name('namespace-0001')
.with_distributor_name('distributor-model-0001')
.with_description('description1')
.with_metadata('{"hoge": "fuga"}')
.with_inbox_namespace_id('inbox-0001')
.with_white_list_target_ids([
'grn:AAA',
'grn:BBB',
])
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.update_distributor_model_master({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
description="description1",
metadata="{\"hoge\": \"fuga\"}",
inboxNamespaceId="inbox-0001",
whiteListTargetIds={
"grn:AAA",
"grn:BBB"
},
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.update_distributor_model_master_async({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
description="description1",
metadata="{\"hoge\": \"fuga\"}",
inboxNamespaceId="inbox-0001",
whiteListTargetIds={
"grn:AAA",
"grn:BBB"
},
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;deleteDistributorModelMaster
配信モデルマスターを削除
編集可能な配信モデルマスター定義を削除します。
マスターデータのみが影響を受け、現在有効化(公開)されているモデルはマスターデータが再度有効化されるまで影響を受けません。
詳細
Request
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||
| distributorName | string | ✓ | ~ 128文字 | 配信モデル名 配信モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
Result
| 型 | 説明 | |
|---|---|---|
| item | DistributorModelMaster | 削除した配信モデルマスター |
実装例
import "github.com/gs2io/gs2-golang-sdk/core"
import "github.com/gs2io/gs2-golang-sdk/distributor"
import "github.com/openlyinc/pointy"
session := core.Gs2RestSession{
Credential: &core.BasicGs2Credential{
ClientId: "your client id",
ClientSecret: "your client secret",
},
Region: core.ApNortheast1,
}
if err := session.Connect(); err != nil {
panic("error occurred")
}
client := distributor.Gs2DistributorRestClient{
Session: &session,
}
result, err := client.DeleteDistributorModelMaster(
&distributor.DeleteDistributorModelMasterRequest {
NamespaceName: pointy.String("namespace-0001"),
DistributorName: pointy.String("distributor-model-0001"),
}
)
if err != nil {
panic("error occurred")
}
item := result.Itemuse Gs2\Core\Model\BasicGs2Credential;
use Gs2\Core\Model\Region;
use Gs2\Core\Net\Gs2RestSession;
use Gs2\Core\Exception\Gs2Exception;
use Gs2\Distributor\Gs2DistributorRestClient;
use Gs2\Distributor\Request\DeleteDistributorModelMasterRequest;
$session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region::AP_NORTHEAST_1
);
$session->open();
$client = new Gs2DistributorRestClient(
$session
);
try {
$result = $client->deleteDistributorModelMaster(
(new DeleteDistributorModelMasterRequest())
->withNamespaceName("namespace-0001")
->withDistributorName("distributor-model-0001")
);
$item = $result->getItem();
} catch (Gs2Exception $e) {
exit("error occurred")
}import io.gs2.core.model.Region;
import io.gs2.core.model.BasicGs2Credential;
import io.gs2.core.rest.Gs2RestSession;
import io.gs2.core.exception.Gs2Exception;
import io.gs2.distributor.rest.Gs2DistributorRestClient;
import io.gs2.distributor.request.DeleteDistributorModelMasterRequest;
import io.gs2.distributor.result.DeleteDistributorModelMasterResult;
Gs2RestSession session = new Gs2RestSession(
Region.AP_NORTHEAST_1,
new BasicGs2Credential(
"your client id",
"your client secret"
)
);
session.connect();
Gs2DistributorRestClient client = new Gs2DistributorRestClient(session);
try {
DeleteDistributorModelMasterResult result = client.deleteDistributorModelMaster(
new DeleteDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
);
DistributorModelMaster item = result.getItem();
} catch (Gs2Exception e) {
System.exit(1);
}using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Core.Exception;
var session = new Gs2RestSession(
new BasicGs2Credential(
"your client id",
"your client secret"
),
Region.ApNortheast1
);
yield return session.OpenAsync(r => { });
var client = new Gs2DistributorRestClient(session);
AsyncResult<Gs2.Gs2Distributor.Result.DeleteDistributorModelMasterResult> asyncResult = null;
yield return client.DeleteDistributorModelMaster(
new Gs2.Gs2Distributor.Request.DeleteDistributorModelMasterRequest()
.WithNamespaceName("namespace-0001")
.WithDistributorName("distributor-model-0001"),
r => asyncResult = r
);
if (asyncResult.Error != null) {
throw asyncResult.Error;
}
var result = asyncResult.Result;
var item = result.Item;import Gs2Core from '@/gs2/core';
import * as Gs2Distributor from '@/gs2/distributor';
const session = new Gs2Core.Gs2RestSession(
"ap-northeast-1",
new Gs2Core.BasicGs2Credential(
'your client id',
'your client secret'
)
);
await session.connect();
const client = new Gs2Distributor.Gs2DistributorRestClient(session);
try {
const result = await client.deleteDistributorModelMaster(
new Gs2Distributor.DeleteDistributorModelMasterRequest()
.withNamespaceName("namespace-0001")
.withDistributorName("distributor-model-0001")
);
const item = result.getItem();
} catch (e) {
process.exit(1);
}from gs2 import core
from gs2 import distributor
session = core.Gs2RestSession(
core.BasicGs2Credential(
'your client id',
'your client secret'
),
"ap-northeast-1",
)
session.connect()
client = distributor.Gs2DistributorRestClient(session)
try:
result = client.delete_distributor_model_master(
distributor.DeleteDistributorModelMasterRequest()
.with_namespace_name('namespace-0001')
.with_distributor_name('distributor-model-0001')
)
item = result.item
except core.Gs2Exception as e:
exit(1)client = gs2('distributor')
api_result = client.delete_distributor_model_master({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
})
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;client = gs2('distributor')
api_result_handler = client.delete_distributor_model_master_async({
namespaceName="namespace-0001",
distributorName="distributor-model-0001",
})
api_result = api_result_handler() -- Call the handler to get the result
if(api_result.isError) then
-- When error occurs
fail(api_result['statusCode'], api_result['errorMessage'])
end
result = api_result.result
item = result.item;