2022/01/16

[golang][grpc] gRPCサンプル

以前もやったけど、忘れてしまったのでやり直すことにした。

hiro99ma blog: [golang][grpc]protocの準備
https://blog.hirokuma.work/2021/11/golanggrpcprotoc.html

grpc の examples だけやりたいのに全部 clone したくないので、わざわざ fork してリポジトリを作った。
という名目で、README にやることを書き残した。探すのが面倒なのだ。

https://github.com/hirokuma/grpc-go-examples

ちなみに、fork してからブランチやタグを削除するのに以下のサイトが役立った。
ローカルのタグを削除して push --tags とかすれば同期されるのかと思ったけど、そうはいかないようだった。
一度 git tag で全部出して、改行を削除してから push して消した後にローカルを削除した。たぶん一度に格好良くやる方法はあるのだろうけど、まああんまりやる操作じゃないからよかろう。

リモートのタグを一括削除するときは–deleteを使おうと思った話 | WEB EGG
https://blog.leko.jp/post/should-use-delete-option-to-delete-git-branch-or-tag/

gitでブランチやタグを一括削除する - Qiita
https://qiita.com/wagase/items/2248e39460cae2768dd2

そのまま動かす tutorial 1 と、rpc に SayHelloAgain を追加した tutorial 2 を commitしている。
gRPC の Quick start と内容は同じで、ツールのバージョンを上げたり、proto ファイルを更新したりしているだけだ。


greeter_client は flag を使っているので、コマンドライン引数に --name と --addr を指定できるようになっている。
flag は go.mod にも出てこないので golang の標準ライブラリなのだろう。
"--help" と "-h" は何も指定しなかったらヘルプ出力をしてくれた。指定するとエラーにはならずオプションとして使えるようになる。
ショートのオプション名も付けたかったら、たぶん Var 付きの関数を使って複数割り当てるしかないのだろう。

 

便利なのだけど、まだ使いこなせてないなー。