GraphQL是什么?我也进行了与REST API的比较

GraphQL点

    • Graph(グラフ構造の) + QL(クエリ言語)。Web APIの1つでREST APIの次のパラダイムとして注目されている

 

    • GraphQL APIのエンドポイントは1つで、データ操作の種類(CRUD)と欲しいレスポンス形式を指定してリクエストし、データを取得することができる

 

    クライアント(フロントエンド)側からデータのレスポンス形式を指定できる

GraphQL的术语

用語意味Queryクエリ処理( = Get)Mutationトランザクション処理( = Put/Post/Delete)SchemaAPIの定義。クライアントがサーバーにクエリを送信し、返却値として期待されるオブジェクトの型を定義Subscriptionクライアントへの通知。( = WebSocketと同様の効果)

机构的形象

27ADFwx4YFgCeBgp-067F1.png

与REST API进行对比

比較項目REST APIGraphQLデータ操作の種類GET/POST/PUT/DELETEQuery/Mutationエンドポイント複数([GET]user/[PUT]setting など欲しいデータによってリクエスト先エンドポイントが変わる)1つ(データ操作の種類と欲しいレスポンス形式を指定する)型付け弱い強いPub/Subなし(WebSocketを使用することが多い)可(subscription)

好处

    • クライアントからAPIのレスポンスの指定ができる

 

    • サブスクリプションを利用したリアルタイム処理ができる

クライアントはデータをサブスクライブすることで、イベントドリブンに処理を実装することが可能

缺点

    • N + 1 問題が発生する可能性

クエリの指定方法によってはパフォーマンス問題や脆弱性を生みやすい。

Securing Your GraphQL API from Malicious Queries

广告
将在 10 秒后关闭
bannerAds