GraphQL vs REST
GraphQL is not database.
REST cons
最近のネットワーク上の要求の大部分は
でも欠点はありませんか?
GraphQL
over/under-fetching issue
REST API workflow. 画像をクリックすると元のページに表示されます.
図に示すように、クライアントは、ユーザ情報、文章、注目者の数を取得するために、3回の要求を発行した.ここで、お客様が本当に必要とする情報がユーザー名、記事タイトル、注目数である場合、サーバ応答に含まれるユーザーアドレス、ユーザー誕生日、記事内容などは不要な情報です.これをオーバーフェッチと呼びます(データがより多く応答します).
逆に、必要な情報は、上述したユーザ名、文章タイトル、注目数であるが、第1の要求
逆に、
graphql case
GraphQL workflow. 画像をクリックすると元のページに表示されます.
1回のリクエストで欲しいデータが得られます.きれいになる.
では、
more flexible
これは
so..
Comparison
REST prosテクノロジーを選択する基準は、すべてのコラボレーション開発者が知っているテクノロジーであるべきです.このようにしてこそ、一緒に開発することができます. 依存性が低下した. GraphQL cons
依存性の差が
私が最初に言ったように、
バックグラウンドで使用できるデータにのみアクセスできます.(
次に、定義したデータにqueryを定義する必要があります.
思ったより.本当にたくさん定義されます.
GraphQL pros
しかし、それでも
copied from github repo .
Read https://www.howtographql.com/basics/1-graphql-is-the-better-rest/ https://36-concepts-graphql.netlify.app/ React conf 2015 graphql presentation https://odyssey.apollographql.com/lift-off-part1/
REST cons
最近のネットワーク上の要求の大部分は
REST
を使用しています.REST
APIは分かりやすいです.frontendとbackendの依存性は低下した.でも欠点はありませんか?
GraphQL
graphql
はREST
の過取・欠取の問題を解決するために現れたようだ.ここのover-fetching、under-fetchingは何ですか?over/under-fetching issue
REST API workflow. 画像をクリックすると元のページに表示されます.
図に示すように、クライアントは、ユーザ情報、文章、注目者の数を取得するために、3回の要求を発行した.ここで、お客様が本当に必要とする情報がユーザー名、記事タイトル、注目数である場合、サーバ応答に含まれるユーザーアドレス、ユーザー誕生日、記事内容などは不要な情報です.これをオーバーフェッチと呼びます(データがより多く応答します).
逆に、必要な情報は、上述したユーザ名、文章タイトル、注目数であるが、第1の要求
/users/<id>
の応答に対して、文章および追従者関連データがないのはunder−fetching(得られたデータが少ない)である.逆に、
graphql
はどのようにこの問題を解決したのでしょうか.graphql case
GraphQL workflow. 画像をクリックすると元のページに表示されます.
1回のリクエストで欲しいデータが得られます.きれいになる.
では、
graphql
はどのように要求を出しますか?graphql
は単一の端点を有する.POST要求/graphql
.end-pointは、queryがクライアントによって記述されるものです.これはもう一つの利点を意味します.more flexible
graphql
は先端をより自由にします.バックエンドが提供する限定APIを使用しない場合は、必要なデータを要求し、受信して使用すればよい.これは
graphql
が生まれたきっかけに似ている.2015年Real Confビデオを見ると、なぜMETA Facebookがgraphql
を作ったのかを説明する写真が出てきます.React
を使用したことがある場合は、コンポーネントがデータを処理する階層を持っていることを知っているかもしれません.React
組は、上記の写真が同じ場合には、オーバー/アンダーが発生すると考えている.また、アプリケーションが遅くなると思います.(リクエストが増えている)so..
graphql
とは何かを簡単に理解しました.REST
APIを使う理由はないようですね?それでも、なぜREST
を使うのでしょうか.Comparison
REST pros
依存性の差が
REST
の利点であれば、graphql
の欠点は依存性が高いことですか?そうですね.私が最初に言ったように、
graphql
はDBではありません.DB queryでもない.バックグラウンドで使用できるデータにのみアクセスできます.(
REST
にend-pointが複数あるように)クライアント(frontend)は、データがどのように定義されているかを知るべきである.次に、定義したデータにqueryを定義する必要があります.
思ったより.本当にたくさん定義されます.
GraphQL pros
しかし、それでも
graphql
は、開発者がコードを読みやすくします.copied from github repo .
apollo-server
schemaの例を次に示します.後端に現れる.const typeDefs = gql`
"""
fetch our data to client
"""
type Query {
"Query to get tracks array for the homepage grid"
tracksForHome: [Track!]!
}
"""
A track is a group of module that teaches about a specific topic
"""
type Track {
id: ID!
"the title of track"
title: String!
"the main author of track"
author: Author!
"the main illustration for display in track card or track page detail."
thumbnail: String
"the track's approximate length to complete, inminutes"
length: Int
"the number of modules this track contains"
modulesCount: Int
}
"""
Author of a complete track
"""
type Author {
id: ID!
name: String!
photo: String
}
`;
REST
APIを作成した場合は、ドキュメントライブラリを作成した可能性があります.しかしながら、graphql
はschemaに上記の注釈を記述することによって開発者を助けることができる.Read
Reference
この問題について(GraphQL vs REST), 我々は、より多くの情報をここで見つけました https://velog.io/@lololtoday/GraphQL-vs-RESTテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol