Slide 1

Slide 1 text

GraphQL ⼊⾨ GraphQL ⼊⾨

Slide 2

Slide 2 text

lagénorhynque lagénorhynque (defprofile lagénorhynque :id @lagenorhynque :reading "/laʒenɔʁɛ̃ k/" :aliases [" カマイルカ "] :languages [Clojure Haskell English français] :interests [programming language-learning law mathematics] :commits ["github.com/lagenorhynque/duct.module.pedestal" "github.com/lagenorhynque/duct.module.cambium"] :contributes ["github.com/japan-clojurians/clojure-site-ja"])

Slide 3

Slide 3 text

1. GraphQL とは 2. クエリ⾔語 3. スキーマ⾔語 4. 便利な機能 5. 便利なツール/ ライブラリ

Slide 4

Slide 4 text

1. GraphQL とは 1. GraphQL とは

Slide 5

Slide 5 text

API に対するクエリ⾔語とクエリを実現するための実 ⾏エンジンについての仕様 cf. GraphQL GraphQL GraphQL Speci cation

Slide 6

Slide 6 text

2. クエリ⾔語 2. クエリ⾔語

Slide 7

Slide 7 text

操作 (operation) 操作 (operation) subscription query mutation

Slide 8

Slide 8 text

3. スキーマ⾔語 3. スキーマ⾔語

Slide 9

Slide 9 text

GraphQL SDL GraphQL SDL (schema de nition language) type scalar enum interface union input

Slide 10

Slide 10 text

4. 便利な機能 4. 便利な機能

Slide 11

Slide 11 text

クライアント側で便利な機能 クライアント側で便利な機能 によるフィールドの別名指定 によるフィールドセット の再利⽤ によるクエリのパラメータ化 エイリアス(alias) フラグメント(fragment) 変数(variable)

Slide 12

Slide 12 text

5. 便利なツール / ライブラリ 5. 便利なツール / ライブラリ

Slide 13

Slide 13 text

GUI クライアント GUI クライアント etc. GraphiQL GraphQL Playground Altair

Slide 14

Slide 14 text

代表的なフレームワーク 代表的なフレームワーク etc. Apollo GraphQL Relay

Slide 15

Slide 15 text

パフォーマンス / セキュリティ関連 パフォーマンス / セキュリティ関連 のライブラリ のライブラリ cf. : Clojure 実装 etc. DataLoader superlifter graphql-depth-limit graphql-validation-complexity graphql-query-complexity graphql-cost-analysis

Slide 16

Slide 16 text

cf. How to GraphQL > Security

Slide 17

Slide 17 text

Further Reading Further Reading : 公式 サイト : ⼊⾨書 ⽇本語版: : awesome list GraphQL | A query language for your API GitHub Learning GraphQL 『初めてのGraphQL 』 chentsulin/awesome-graphql: Awesome list of GraphQL & Relay

Slide 18

Slide 18 text

: チュートリアル集 バックエンド: Node.js, Elixir, Ruby, Java, Python, Scala フロントエンド: React + Apollo, React + urql, etc. : public なGraphQL API の代表例 How to GraphQL - The Fullstack Tutorial for GraphQL GitHub GraphQL API v4 | GitHub Developer Guide

Slide 19

Slide 19 text

: の代表的なGraphQL 実装 参考: 「GraphQL 」徹底⼊⾨ ─ REST との⽐較、API ・ フロント双⽅の実装から学ぶ - エンジニアHub Lacinia Clojure Lacinia-Pedestal Clojure のLacinia でGraphQL API 開発 してみた - Qiita