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)。
関連
- microservices-architecture(サービス間通信・Saga) / graphql