Life is a Translucent

I wish it was the 90's

CLIからProtobufのリクエストを投げる

Tags: CLI,Protobuf

TL:DR;

Motivation

世間的にはProtobufはgRPCとセットの技術という認識が強く、 世の中の需要的にもProtobufを単独で扱いたいというケースは少ないように思う。

ただ、現在扱っている案件では「gRPCを利用はしないが、Protobufを用いてデータをやりとりする」こととなり、 CLIから気軽にProtobufのリクエストを投げたいというのが動機。

Solution

protoc--encodeオプションを利用する。

Command

$ echo "sample: 'sample_param'" \
  | protoc --encode=sample.SampleProto Sample.proto \
  | curl -X POST "https://example.com/proto_api" \
         --data-binary @- \
  | protoc --decode=sample.SampleProtoResponse SampleResponse.proto