by @nyarla

GraphQL と gRPC と REST についての云々

この三つ、割と並列で語られる事が多い様に思うんだけど、実際にはコアのコンセプトが違うんではないか、 とか、なんとなく思ってるんで、その辺りをなんとなく書き下してみます。

GraphQLgRPCREST の違い

基本的に、GraphQL も gRPC も REST も、

Web Services の API を提供する

というレイヤーで使われているモノだ、と言えるかと思うんだけど、 これら三つは、多分、核となる考え方が、次に様に異なっている:

そのため、これらを並列に語る、というのは、微妙に違っていると言うか、 それぞれ何を解決したいか、は似通っているのだろうけれども、実際には、

という感じなんだろう、と思われる。

GraphQLgRPCREST は共存できる

まぁ、

なので、これらの三つは、

**_ REST の設計思想に従いつつ、gRPC ベースの問い合わせの中で GraphQL を使う_**

という様な、誰が得するのか良く分からない組合せやろうと思えば出来る と思う。

GraphQLgRPCREST の使い分け

個人的には、これらは次の様な感じで使い分けられるんじゃね? と思っている:

そのため、API や Web Page も含めて、Web Service などでこれらを利用する際には、 これらのどれか一つに実装を絞るのではなく、それぞれの特性・特長を見極めた上で、 その API などで提供したいデータの構造を加味しながら、それぞれを適切な場面に当て嵌めて行く、 というのが良いのではないか、と個人的には思っています。

以上

まぁ、最終的な結論としては、

GraphQL と gRPC と REST は対立項目ではなく、それぞれを適切に組み合わせる事も出来る類いのモノ

と言う認識になるのかな、と個人的には思っています。はい。