RESTは、1990年代にWorld Wide Webと並行して開発されたアーキテクチャスタイルです。
World Wide Webは、RESTアーキテクチャスタイルのリファレンスアプリケーションです(多少の違いがあります)。
HTTPは、ネットワーク経由でドキュメントを転送するためのアプリケーションプロトコルです。
GraphQLはクエリ言語であり、実行エンジンです。
RESTとGraphQLを直接比較するのはごちゃごちゃです。しかし、あなたができることは、彼らが解決しようとしていた問題の種類を注意深く見ることです。
一般的なソフトウェアエンジニアリングの原則をコンポーネントインターフェイスに適用することにより、システムアーキテクチャ全体が簡素化され、相互作用の可視性が向上します。実装は、それらが提供するサービスから切り離されているため、独立した進化が促進されます。ただし、情報がアプリケーションのニーズに固有のものではなく、標準化された形式で転送されるため、均一なインターフェイスによって効率が低下するというトレードオフがあります。RESTインターフェースは、大規模なハイパーメディアデータ転送に効率的になるように設計されており、Webの一般的なケースに合わせて最適化されますが、その結果、他の形式のアーキテクチャーの相互作用には最適ではないインターフェースになります。 フィールディング、2000
RESTでは、キャッシングは重要なことであり、現在のHTTP仕様には、セマンティクスのキャッシング専用のRFC全体があります。しかし、GraphQLを使用している人々は明らかに、キャッシュは問題にとって重要ではないと判断しました。
私が知ることができるように、GraphQLはSOAPと同じカップリングの選択をたくさん行っています。それは正しいか間違っているのではなく、トレードオフのバランスが異なるだけです。