理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

grpc

初歩から学ぶ gRPC の UnaryServerInterceptor、StreamServerInterceptor のつくりかた

gRPC には Interceptor という概念があるというのを先日のエントリで書きました。 ただ、じゃぁ Interceptor ってどういう風に作るんやっていうところまでは書けなかったので、今日はそのあたりです。 簡単に試せる話題として、送受信ログを出力する仕組みを…

gRPC の proto を生で読むのに人生疲れたので protoc-gen-doc で gRPC の API 仕様を HTML 化して読む

gRPC を使いはじめ、.proto に多くの RPC を定義してきました。そうすると、 様々な Req/Res が階層構造を持つ message として定義されるようになる その message が様々な RPC で横断的に使われるようになる ということが当然のように起こります。 ぼくは従…

gRPC の Interceptor 概観

Unary と Streaming Interceptor mercari go-grpc-middleware Unary と Streaming Interceptor の前に gRPC の種類について書かないといけないのですが、 gRPC には 大きくわけて 4 つの RPC が存在しています。 Unary RPC Server streaming RPC Client stre…

Multi-stage builds で gRPC サーバを立ち上げる

諸々で gRPC サーバを構築したりしているのですが、フロントを開発している人に gRPC サーバ + データベース一式を簡単に立ち上げられるようにしたいという思いがありました。 また、他にもシステム間連携を行う想定もあるので、できれば docker-compose に…

gRPCをcurlのようにコンソールから呼び出せるgrpcurl

サーバを作る以上、クライアントがないと開発が面倒です。 しかし、gRPC はバイナリプロトコルである HTTP/2 上で Protocol Buffer をシリアライズに使います。 このため、テキストプロトコルである HTTP/1.x のようにクライアントとして curl を使うといっ…