私は最近、HATEOAS RESTエンドポイントの開発を完全にスキップしてGraphQLを支持している」と言った人と話していました。したがって、GraphQLをいつ使用するかを決定するための基準セットが何であるかについて興味があります。対HATEOASまたはGraphQLはAPIゲートウェイ/エッジサーバーアーキテクチャの一般的な方が良い選択ですか?
それぞれの長所と短所は次のとおりです。
プロ:
短所:
プロ:
短所:
興味深い比較の1つは、人々がGraphQLをREST APIのフロントエンドとして使用していることですが、その逆を検討する人は誰もいないでしょう。フェデレーション/マイクロサービスの設計を選択する場合は、 GraphQLサーバーフロントは他の人のために、フロントエンドとマイクロサービスの間でAPIの共通仕様を使用できます。これは、マイクロサービスがRESTである場合はそれほど確実ではありません。
適切な質問を念頭に置いている限り、GraphQLは適切に設計されたシステムの重要な部分になると思います。残念ながら、HATEOASを完全にスキップするかどうかは、「状況によって異なります」。
私自身の経験に加えて、Phil Sturgeonの GraphQL vs REST:概要
Edが私の概要へのリンクを投稿したのは気に入っていますが、それよりも関連性が高いと思われる別の記事があります。
状態の表現は、2つの間で完全に異なります。
https://blog.apisyouwonthate.com/representing-state-in-rest-and-graphql-9194b291d127
GraphQLは、意味のある標準化された方法で一連の「次のステップ」を提供することはまったくできません。
それを行ったとしても、他のHTTPAPIとの通信を助けることはできません。これは本当に残念です。
とにかく、それはすべてその記事です! :)