Go言語でgRPCを学ぼう!-GreetEveryoneAPI –

こんにちは。KOUKIです。

前回は、LongGreetAPIを実装していましたので、今回はその続きからです。

前回

Go言語記事まとめ

前回の復習

LongGreetAPI続きを実装する前に、前回の復習をします。

calculator.protoにLongCalcAPIを実装してみましょう。

まずは、protoファイルの実装からでしたね。

protoファイルを変更したらコンパイルをしましょう。

続いて、Serverコードを書きます。

このサンプルコードは、Clientから送信されたデータの平均を出力するプログラムです。

続いて、Clientコードを記述しましょう。

ここまで実装できたら動作確認をします。

Server -> Clientの順に実行しましょう。

GreetEveryoneAPI – protoファイル作成 –

復讐はここまでにして、本題に入りましょう。

本日は、Bi Directional Streaming APIを使って、GreetEveryoneAPIを実装します。

Bi Directional Streaming APIの特徴は次の取りです。

Bi Directional Streaming APIの特徴 ・ クライアントから複数のリクエストを送り、サーバーから複数のレスポンスを受け取る
・ リクエスト数とレスポンス数は同一でなくても問題ない
・ クライアントまたはサーバーから大量データを送受信したい場合に適している


Bi Directional Streaming APIを実装するときは、リクエストおよびレスポンス両方にstreamキーワードを付与します。

それではまず、protoファイルを実装します。

protoファイルを変更したら忘れずにコンパイルしましょう。

GreetEveryone API – Serverコード作成 –

次は、Serverコードを作成します。

受け取ったリクエストの数だけ、レスポンス(First Name)を返す実装を行いました。

GreetEveryone API – Clientコード作成 –

次は、Clientコードを作成します。

GreetEveryone API – 動作確認 –

Server -> Clientの順にコードを実行します。

上手くいってますね。

もう少し工夫すれば、Chatアプリケーションが作成できそうな感じですね。

次回

次回も引き続き、gRPCの学習を続けていきます。

参考書籍

コメントを残す