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

extend-app-request-handling

Last updated on July 14, 2026

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

Overview

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

Extend Service Extensionを構築する開発者にとって、gRPCリクエストがどのように処理されるかを理解することは重要です。

gRPCリクエストの処理

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

gRPCエラー処理

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

適切なエラー処理を行い、クライアントに意味のあるフィードバックを提供するために、必要に応じて特定のgRPCステータスコードを使用し、可能な限り詳細なエラーメッセージを含めることを推奨します。

警告

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

gRPC-GatewayによるgRPCエラー処理

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

gRPCとHTTPステータスコードのマッピング
gRPC CodeHTTP Status Code
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は、クライアントのリトライロジックの設定によっては、クライアントによって複数回リトライされる可能性があります。過度なリトライが適切に処理されない場合、パフォーマンスのボトルネックや意図しない副作用を引き起こす可能性があるため、サービスを設計する際にはこの点を考慮することが重要です。