Apollo
流れ
https://gyazo.com/f0369dbf9739584e33ef0a2be4c6edfe
Apollo Platform
https://www.apollographql.com/docs/img/platform-diagram.png
OSS
Apollo Server JavaScript 製の GraphQL サーバー。プラグインで拡張しライフサイクルにフックして動作させることも可能。Lambda 等のサーバレス環境もサポートしている Apollo Client アプリケーションのデータ, 状態管理を担う GraphQL クライアント。JS 製で React, React Native, Vue, Angular 等と連携が可能なものと、iOS/Android サポートのものがある Cloud Services
Trace Warehouse Apollo Server (Apollo trace API を実装したサーバ) の操作履歴を保持するデータのパイプライン/保持層 Gateway
その他
クライアントの識別
識別方法
code:クライアント.js
import { ApolloClient } from 'apollo-client';
import { HttpLink } from 'apollo-link-http';
const client = new ApolloClient({
link: new HttpLink({
}),
name: 'insert your client name',
version: 'insert your client version',
});
code:サーバー.js
const { ApolloServer } = require('apollo-server');
const server = new ApolloServer({
typeDefs,
resolvers,
engine: {
apiKey: 'YOUR API KEY HERE',
generateClientInfo: ({
request
}) => {
const headers = request.headers;
return {
};
},
},
});
server.listen().then(({ url }) => {
console.log(🚀 Server ready at ${url});
});
ユースケース
クライアントの識別
問題のあるクライアント (高コストなクエリを投げていたり、deprecated なフィールドを利用していたり) の追跡
どのフィールドがどのクライアントにどれくらい使われているかは、パッとわかるようになっている
https://www.apollographql.com/docs/img/client-awareness/field-usage.png