GraphQL Part1
■ このスレッドは過去ログ倉庫に格納されています
Facebookが開発したREST APIの代替みたいなやつ
・必要なフィールドだけを指定して取得出来る。IDで繋がれたデータの取得も一回のHTTPリクエストで行える
・強い型付け。クライアントからIntrospectionを行ってスキーマを取得出来る(利用可能なクエリーやデータ型)
・Schema Stitching(複数のGraphQL APIを結合して、新しいAPIを作る)
・サブスクリプション(WebSocketsでデータの変更通知を受けられる)
・GraphiQLやGraphQL Playgroundなどの強力なデバッグツールがある。Introspectionで取得したスキーマを使ってクエリーのオートコンプリートや、クエリー編集中のエラー表示、クエリーの説明の表示を行う
・スキーマからモックサーバーを作成可能
Explore GraphQL: The API for modern apps.
https://www.graphql.com ライブラリがApolloの場合だが
こんな機能も付いてくる
・型情報を利用して、クライアント側でクエリーを自動的にキャッシュする
・Automatic persisted queries(APQ): クエリーの代わりにクエリーをハッシュ化した文字列を送って帯域幅を節約する
・Apollo Engine: クエリーのパフォーマンスやエラー数等の分析に使えるサービス
・キャッシュ時間を指定し、CDNにAPIのレスポンス全体をキャッシュさせる grpcとgraphqlの違いが分からん
当然使い方も分からん >>5
gRPCとGraphql
https://qiita.com/hitochan777/items/7ecc11e77fa89be009d3
GraphQLは必要なフィールドだけ取れるのが特徴?
grpcはサーバー間の通信向け
grpcをブラウザで使えるようにすると言う触れ込みの
grpc-webはまだアルファ版だし、ブラウザではまだ使えないと考えて良いと思う
gRPCにあるバイナリのストリーミング通信はブラウザで使う事は考えて作られていなかったからか
grpc-webでは今のところ動かない
一方GraphQLはストリーミング通信など最初から無い クエリ系はGQL、コマンド系はJSON-RPCなどと使い分けたほうがいいのか? >>7
GraphQLのMutationでだめな理由がないなら
Mutationでよくね? Move fast (without breaking things) – Apollo GraphQL
https://blog.apollographql.com/move-fast-without-breaking-things-c7d3407ee8d6
Validating GraphQL schema changes with the Apollo platform >>6
サブスクライブでウェブソケット待ち受けられるんだから、できるんじゃないの?サーバに対応処理実装すればいいだけでは? ■ このスレッドは過去ログ倉庫に格納されています