ブラウザー アプリでの gRPC の使用

作成者: James Newton-King

ブラウザーから gRPC サービスを直接呼び出すことはできません。 gRPC では HTTP/2 の機能が使用され、gRPC クライアントをサポートするために Web 要求を通して必要とされるレベルの制御を提供するブラウザーがありません。

ASP.NET Core 上の gRPC には、gRPC-Web と gRPC JSON トランスコーディングの 2 つのブラウザー互換ソリューションが用意されています。

gRPC-Web

gRPC-Web を使うと、gRPC-Web クライアントと Protobuf を使用してブラウザー アプリで gRPC サービスを呼び出すことができます。

  • 通常の gRPC と同様ですが、ワイヤプロトコルが若干異なっており、HTTP/1.1 やブラウザーと互換性があります。
  • ブラウザー アプリで .proto ファイルから gRPC クライアントを生成することが要求されます。
  • ブラウザー アプリで、バイナリ メッセージの高パフォーマンスで低ネットワークの使用を活用できます。

.NET には、gRPC-Web のサポートが組み込まれています。 詳細については、「ASP.NET Core gRPC アプリでの gRPC-Web」参照してください。

gRPC JSON コード変換

gRPC JSON コード変換を使用すると、JSON と RESTful API のように、ブラウザー アプリで gRPC サービスを呼び出すことができます。

  • ブラウザー アプリで gRPC クライアントを生成する必要はありません。gRPC について知る必要もありません。
  • RESTful API は、HTTP メタデータを使用して .proto ファイルに注釈を付けることによって、gRPC サービスから自動的に作成されます。
  • アプリで gRPC と JSON の両方の Web API をサポートできるため、両方に個別のサービスを構築する手間を省くことができます。

.NET には、gRPC サービスから JSON Web API を作成するためのサポートが組み込まれています。 詳細については、「ASP.NET Core gRPC アプリでの gRPC JSON コード変換」を参照してください。

注意

gRPC JSON コード変換には .NET 7 以降が必要です。

その他のリソース