grpc-ecosystem/grpc-gatewayのセットアップ方法をまとめてみた
Server Side Kotlinのアウトプットにつかっているレポジトリにgrpc-gatewayを入れてみたので、セットアップ方法をまとめておく。
grpc-gatewayはHTTP/1.1のAPIの提供する。定義したprotoにoptionを加えることでHTTP/1.1 APIのコードとgrpc-clientのリクエストを仲介するgoコードが生成される。
定義したprotoに次のようなoptionを加える。
|
|
このoption定義によるとPOSTメソッドで パスが/grpcgateway/task
のエンドポイントができあがる。リクエストボディには次のようにprotoに定義したGetTaskInboundのmessage定義をJSON形式でセットしてリクエストする。
|
|
次にprotocでHTTP/1.1 APIのコードとgrpc-clientのリクエストを仲介するgoコードを生成する。
|
|
このprotocを実行すると task.pb.gw.go
が生成される。生成されたproxyコードを使ってエンドポイントに定義すれば良い。
定義の仕方はgrpc-gatewayのexmapleが分かりやすい。
grpc-gateway/main.go at master · grpc-ecosystem/grpc-gateway · GitHub
コード
動くコードをgithubに置いたので合わせて確認してほしい。