Apollo
使い方
サーバの立ち上げ
一瞬で GraphQL サーバの立ち上げ & GraphQL 実行環境を作成できる。
code:shell
npm init -y
npm install --save apollo-server graphql
下記のような index.js を作成する。
code:javascript
const { ApolloServer, gql } = require('apollo-server');
/*** 型定義 ***/
// 型定義でデータの形式、形を定義する
const typeDefs = gql`
type Book {
title: String
author: String
}
# GraphQL クエリのルートは Query 型
type Query {
}
`;
/*** リゾルバ ***/
// サンプルデータとして、単純な配列を用意する
const books = [
{
title: 'Harry Potter and the Chamber of Secrets',
author: 'J.K. Rowling',
},
{
title: 'Jurassic Park',
author: 'Michael Crichton',
},
];
const resolvers = {
Query: {
books: () => books,
},
};
/*** GraphQL サーバの起動 ***/
// 基本的には、ApolloServer の構築に必要なのは以下の2つ
// - 型定義 (typeDefs)
// - リゾルバ (resolvers)
const server = new ApolloServer({ typeDefs, resolvers });
server.listen().then(({ url }) => {
console.log(🚀 Server ready at ${url});
});
node で実行する。
code:shell
$ node index.js
アクセス
via GUI
Apollo サーバには GUI ツールが備わっており、起動後、http://localhost:4000/graphql にアクセスすると、GUI から GraphQL クエリを叩くことができる。
https://gyazo.com/0576a536d3750c96c438097ea0efc8ab
via HTTP
クエリを用意して encodeURI() あたりでエンコードし、クエリパラメータ query としてわたせばよい。
code:shell
via Library
GraphQL Client 等を利用するのが良さそう。
MySQL との連携
DataSurces としては REST API が存在するが、MySQL へのサポートはないようだ。 MySQL 特化の DataSource を作成する予定も今の所はないらしく、基本的には、既存の DataSource オブジェクトを独自に拡張するのが正攻法らしい。以下で議論されており、サンプルコードも存在する。
気になるやつ。WebSocket 通信とか