メインコンテンツまでスキップ

extend-app-request-handling

Last updated on February 4, 2026

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

概要

Extend Service Extension アプリは、AccelByte エコシステム内で堅牢でスケーラブルかつカスタマイズ可能なバックエンドサービスをサポートするために、gRPCgRPC-Gateway をコア技術として活用しています。これらの技術は、API の定義、クライアント・サーバー間またはサーバー・サーバー間の通信処理、および gRPC サービスを RESTful エンドポイントとして公開するための高性能フレームワークを提供します。

gRPC リクエストがどのように処理されるかを理解することは、Extend Service Extension を開発したい開発者にとって不可欠です。

gRPC リクエスト処理

以下のガイドでは、Extend がサポートする言語のサービス定義、クライアント/サーバーのセットアップ、およびリクエスト処理ロジックについて説明します:

gRPC エラー処理

ベストプラクティスについては、以下の公式リソースを参照してください:

適切なエラー処理を確保し、クライアントに意味のあるフィードバックを提供するために、適切な場合は特定の gRPC ステータスコードを使用し、可能な限り詳細なエラーメッセージを含めることが推奨されます。

警告

gRPC メソッドを実装する際は、エラーを適切に処理することが重要です。メソッド実装内で例外がスローされると、13 INTERNAL gRPC ステータスコード(または HTTP では 500 Internal Server Error)が返されます。

gRPC-Gateway を使用した gRPC エラー処理

Extend アプリは、特に gRPC-Gateway と組み合わせた場合、gRPC エラーを構造化された方法で表示します。これらのエラーは、RESTful クライアントとの互換性を確保するために、標準の HTTP ステータスコードにマッピングされます。

gRPC から HTTP ステータスコードへのマッピング
gRPC コードHTTP ステータスコード
0 OK200 OK
1 CANCELLED499 -
2 UNKNOWN500 Internal Server Error
3 INVALID_ARGUMENT400 Bad Request
4 DEADLINE_EXCEEDED504 Gateway Timeout
5 NOT_FOUND404 Not Found
6 ALREADY_EXISTS409 Conflict
7 PERMISSION_DENIED403 Forbidden
8 RESOURCE_EXHAUSTED429 Too Many Requests
9 FAILED_PRECONDITION400 Bad Request
10 ABORTED409 Conflict
11 OUT_OF_RANGE400 Bad Request
12 UNIMPLEMENTED501 Not Implemented
13 INTERNAL500 Internal Server Error
14 UNAVAILABLE503 Service Unavailable
15 DATA_LOSS500 Internal Server Error
16 UNAUTHENTICATED401 Unauthorized

完全な実装の詳細については、gRPC-Gateway の errors.go を参照してください。

警告

500 Internal Server Error は、クライアントのリトライロジック設定に応じて、クライアントによって複数回リトライされる可能性があります。サービスを設計する際にはこれを考慮することが重要です。適切に処理されない場合、過度なリトライはパフォーマンスのボトルネックや意図しない副作用につながる可能性があります。