GraphQLは非常に人気があり、非常に強力ですが、ODataとは根本的に異なります。 つまり、どちらかが絶対的に優れているわけではありません。
いくつか指摘できる点があります。
OData = URL 内のSQL
ODataはSQL文をURLにシリアライズする方法でした
クライアント側のクエリ能力を制限するのは難しいです。
OData 標準化
ODataの仕様はその強みであり、RPCがRESTfulに対しても同様の役割を果たしています。 RESTfulには仕様があり理解しやすいですが、すべてを表現するのは簡単ではありません。 RPCはすべてを表現できますが、標準化があまりにも不十分です。
ODataの欠点
ODataは通常、データベーススキーマの状態よりも厳密で(つまりSQL Queryのようなものです)、スキーマが変更されると古いバージョンの維持が難しくなります。
ODataは統一管理を好み、特別なケースを最適化するのは難しいです。
最もよく説明されている
ODataはSQL Queryのようなもので、GraphQLはストアドプロシージャのようなものです。 味わいがゆっくりだ。
したがって、この二つは共存し、互いに補完し合わなければなりません。
概要
ODataはSQL Queryのようなもので、GraphQLはストアドプロシージャのようなものです。
ODataはRESTfulのようなもので、GraphQLはRPCのようなものです
シンプルな統合が欲しいなら、RESTFulは素晴らしいです。SQL Queryで十分、ODataも良いです。
しかし、特別な状況で単純な方法やRPC、ストアドプロシージャが使えない場合、GraphQLはその魅力を際立たせます。
両者の使用シナリオを見てみましょう。 ODataはSAPのようなエンタープライズアプリケーション向けのAPIとして機能する傾向があります。 通常はよりシンプルなリレーショナルデータベースパターンです。
GraphQLはインターネットアプリケーションであり、公開APIであり、NoSQLのようなあらゆる種類のデータです
まとめると、GraphQLはODataよりも多く(より自由に)表現でき、ODataはGraphQLよりもルール(制約が多い)を持っています
どちらが正しいのでしょうか?外部用にはGraphQL、内部用にはODataか、使うかどうかはプロジェクトによって大きく異なります。
|