GraphQLの代わりにSQLを使用しないのはなぜですか?
最近、RESTfulより優れていると主張するGraphQLについて学びました。しかし、なぜ単純にSQLステートメントをHTTP GETリクエストに入れないのだろうと思い始めました。 たとえば、GraphQLでは次のように記述します { Movie(id: "cixos5gtq0ogi0126tvekxo27") { id title actors { name } } } これは、対応するSQLよりもそれほど単純ではありません SELECT id, title FROM movies WHERE id = cixos5gtq0ogi0126tvekxo27; SELECT actors.name FROM actors, actors_movies WHERE actors.id == movies.actor_id AND movie.id == cixos5gtq0ogi0126tvekxo27; クエリをURLエンコードしてサーバーに送信することができます GET endpoint?q=SELECT%20id%2C%20title%20FROM%20movies%20WHERE%20id%20%3D%20cixos5gtq0ogi0126tvekxo27%3B%0ASELECT%20actors.name%20FROM%20actors%2C%20actors_movies%20WHERE%20actors.id%20%3D%3D%20movies.actor_id%20AND%20movie.id%20%3D%3D%20cixos5gtq0ogi0126tvekxo27%3B HTTP/1.1 はい、クエリURLは長すぎる可能性がありますが、RESTへの準拠を気にしない場合は、POST要求の本文に含めることができます。(ところで、RESTが意味をなすようにHTTP RFCを改訂する必要があると思います:クエリ文字列の長さを制限することは、実装を最初の段階で仕様と混合します) クライアントからSQLを直接発行することには、次の利点もあります。 GraphQLを解析するためにサーバー側のコード/ライブラリは必要ないため、開発時間が短縮されます。 GraphQLを解析するためにサーバー側のオーバーヘッドは必要ないため、実行時間が短縮されます。 SQLステートメントは、GraphQLよりもはるかに柔軟性があります。なぜなら、ほとんどの場合、後者はSQLに還元されるからです。 誰もがSQLを知っています。 それでは、GraphQLがSQLより優れている点は何ですか?