メインコンテンツへスキップする

gRPCの導入

gRPC は Google によってオープンソース化された、人気のあるRPC フレームワークです。Googleの内部システム「Stubby」に基づいています。 Googleが開発した、言語やプラットフォームに依存しない拡張可能な構造化データのシリアライズ機構であるProtocol Buffersをベースにしています。

Entは、ent/contribで利用可能なプラグインを使って、スキーマからのgRPCサービスの自動生成をサポートしています。

高レベルでは、EntとgRPCの統合は次のように動作します:

  • entprotoというコマンドライン(またはコード生成フック) は、entスキーマからProtocol Buffer定義とgRPCサービス定義を生成するために使用されます。 スキーマは、ドメイン間のマッピングを支援するためにentprotoアノテーションを使用してアノテーションされます。
  • protoc(protobuf compiler)プラグインのprotoc-gen-entgrpcは、データベースからの読み書きにプロジェクトのent.Clientを使用するentprotoによって生成されたgRPCサービス定義の実装を生成するために使用されます
  • 生成されたサービス実装を組み込むgRPCサーバー自体は、開発者が書きます

このチュートリアルでは、Ent/gRPC統合を使用して完全に動作するgRPCサーバーを構築します。

Code

このチュートリアルの最終的なコードはrotemtam/ent-grpc-exampleにあります。