1. ホーム
  2. javascript

[解決済み] gRPCで定義されたAPIをWebブラウザで表示させる方法

2023-07-10 21:35:32

質問

gRPC-microservicesのJavascript/HTML GUIを作りたいと考えています。gRPC はブラウザ側でサポートされていないので、grpc を介してターゲット サービスを呼び出す node.js サーバーに接続するために、Web ソケットを使用することを考えました。 これを行うためのエレガントなソリューションを見つけるのに苦労しています。特に、私たちはマイクロサービス間でイベントをプッシュするためにgRPCストリームを使用しているためです。 フロントエンドとnode.jsサーバの間で通信するためだけに、2つ目のRPCシステムが必要なようです。これは、多くのオーバーヘッドと保守しなければならない追加コードであるように思われます。

どなたかこのようなことをした経験があるか、またはどのように解決されるかという考えをお持ちですか?

どのように解決するのですか?

編集:2018年10月23日以降 gRPC-WebプロジェクトはGA となっており、あなたの問題を解決するための最も公式/標準的な方法かもしれません。(たとえ今がすでに2018年であっても... ;) )

GA-Blogより。 gRPC-Web は gRPC と同様に、クライアント (Web) とバックエンドの gRPC サービスの間でプロトコルバッファを使用してサービスの「契約」を定義することができます。そして、クライアントを自動生成することができます。[...]"

私たちは最近、gRPC-Web ( https://github.com/improbable-eng/grpc-web ) - 提案された gRPC-Web プロトコルに従ったブラウザ・クライアントおよびサーバ・ラッパーです。そのレポにあるサンプルは、良い出発点を提供してくれるはずです。

Golang を使用している場合、スタンドアロン プロキシか gRPC サーバ用のラッパーが必要です。プロキシ/ラッパーは、ブラウザで読めるように、レスポンスボディにトレーラをパッケージ化するためにレスポンスを変更します。

情報公開: 私はこのプロジェクトのメンテナです。