はじめに
REST APIとGraphQLは分かるようになってきて、もう一つAPIの設計で有名なのがgRPCということで、gRPCについて調べてみました。
公式サイトはこちら
gRPCとは?
RPCを実現するためにGoogleが開発したプロトコルです。
まず、RPCが何なのかを知っておく必要がありますね。
RPCとは、Remote procedure call の略で遠隔手続き呼出しのことです。
分かりやすくいうと、ローカルのメソッドを実行するのと同じような感覚でリモートサーバのメソッドを実行できるようになるみたいです。
なので、REST APIのようにパスやメソッドなどを指定する必要がなく、関数と引数を指定することで動作させます。
特徴
★IDL(インターフェース定義言語)を使ってAPI仕様を .proto ファイルとして定義
protoファイルと呼ばれるIDL(Interface Definition Language)にAPI仕様を記述します。
言語に依存しないIDLで先にインタフェースを定義することで、様々なプログラミング言語の実装を生成できるというメリットがあります。
★データ量を少なくかつ高速で送信できる
Protocol Buffers と呼ばれるものを使ってデータをシリアライズして送信します。
シリアライズすることで高速でデータを送信できるようになります。
またHTTP/2が使えるので高速で通信が可能となっています。
そろそろ知っておきたいHTTP/2の話
終わりに
ここまで見るとgRPCの概要がざっくりと分かりました。
具体的な書き方は扱いませんでしたが、特徴を少しでも分かっておくだけでも面白いですね。