gRPC

Protocol Buffers を IDL に用いる契約駆動のRPCフレームワーク。_moc-web-infra

特徴

  • .proto でサービス・メッセージを定義し、各言語のコードを生成(protoc --go_out/--go-grpc_out 等)。Rust/Java/Go で実装。
  • エラーコードは17個に標準化されている。
  • ドキュメントは公式仕様にないが protoc-gen-doc で生成可能。

ブラウザ対応

ブラウザは HTTP/2 を強制できないため gRPC-Web では HTTP/1.1↔HTTP/2 変換プロキシが必要。protobuf on HTTP/1.1 を選ぶ構成もある。

API設計一般

  • IDL(Interface Definition Language)はインターフェース定義言語の総称。ブラウザAPIには Web IDL がある。
  • 要件記述語は RFC2119(MUST/SHOULD/MAY)。エラー設計は Google API Design Guide が参考。
  • リアルタイム双方向は WebSocket(HTTP 上の双方向プロトコル、Upgrade: websocket で 101 Switching Protocols)。

関連