Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GraphQL SQL
Search
chimame
October 02, 2018
Technology
0
2.5k
GraphQL SQL
Cybozu Meetup Osaka 大阪のエンジニアが好きそうな話
chimame
October 02, 2018
Tweet
Share
More Decks by chimame
See All by chimame
RemixでVersion skewに立ち向かう
chimame
1
880
私がエッジを使う理由
chimame
10
4k
GraphQL Server on Edge after that
chimame
1
1.4k
Accelerating App Dev with Cloudflare Workers
chimame
1
400
GraphQL Server on Edge
chimame
12
5.7k
エッジで輝くフロントエンド
chimame
11
6.6k
Cloudflare Workersと状態管理
chimame
4
1.6k
CSRなサイトを (疑似的な)ISRに変更した話
chimame
0
580
Cloud Runマネージドに適したアプリケーションを考える
chimame
1
290
Other Decks in Technology
See All in Technology
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
140
今から、 今だからこそ始める Terraform で Azure 管理 / Managing Azure with Terraform: The Perfect Time to Start
nnstt1
0
230
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
110
生成AIのビジネス活用
seosoft
0
110
re:Invent 2024のふりかえり
beli68
0
110
KMP with Crashlytics
sansantech
PRO
0
240
メンバーがオーナーシップを発揮しやすいチームづくり
ham0215
1
100
[IBM TechXchange Dojo]Watson Discoveryとwatsonx.aiでRAGを実現!事例のご紹介+座学②
siyuanzh09
0
110
ABWGのRe:Cap!
hm5ug
1
120
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
440
2025年の挑戦 コーポレートエンジニアの技術広報/techpr5
nishiuma
0
140
自社 200 記事を元に整理した読みやすいテックブログを書くための Tips 集
masakihirose
2
330
Featured
See All Featured
Site-Speed That Sticks
csswizardry
2
270
It's Worth the Effort
3n
183
28k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Designing for Performance
lara
604
68k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
960
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Automating Front-end Workflow
addyosmani
1366
200k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Documentation Writing (for coders)
carmenintech
67
4.5k
Transcript
GraphQL SQL 2018/10/02 Cybozu Meetup Osaka rito
目次 ➔ 自己紹介 ➔ What's GraphQL ➔ SQL Libraries ➔
まとめ
{ me { name, job, company, community, twitter } }
{ “data” : { “me”: { “name”: “rito” “job”: “software developer” “company”: “Ateam Lifestyle Inc.” “community”: “Rails follow-up osaka organizer” “twitter”: “@chimame_rt” } }
What’s GraphQL
公式のページによると GraphQLはAPI用のクエリ言語であり、既存のデータでこれらのク エリを実行するためのランタイムです。GraphQLは、APIのデータ の完全で分かりやすい説明を提供し、クライアントに必要なものを 何でも尋ねる能力を与え、時間の経過とともにAPIを進化させやす くし、強力な開発ツールを可能にします。
雑に言うと "API用でかつSQLぽいもの"でクライアント が好きなデータを好きな形式で好きなだけ JSONを取得できるもの。
サーバ側はどうやって 作ればいいの?
GraphQLを実装するLibraryは 各言語ごとあります
Ruby https://github.com/rmosolgo/graphql-ruby
PHP https://github.com/webonyx/graphql-php
Python https://github.com/graphql-python/graphene
Java https://github.com/graphql-java/graphql-java
結局どの言語も実装には大小の 学習コストが必要
None
もっと楽したい!
よろしい ならばSQL Libraryだ
SQL Libraries
ここで言うSQL Library RDBMSやNoSQLなどのスキーマ定義から いい感じにGraphQL APIを生やしてくれる Library。逆方向で言うとGraphQLをそのま まデータベースに投げるようなもの。
3つ紹介します
None
PostGraphile(ぽすとぐらふぃる) GitHub: https://github.com/graphile/postgraphile DockerHub: https://hub.docker.com/r/graphile/postgraphile/
特徴 ❏ PostgreSQL専用(名前の通り) ❏ PostgreSQLにGraphQLを投げれるようになるイ メージ ❏ 名前の通りPostgreSQLにかなり特化しており、 FunctionもGraphQLにできる ❏
認証が必要ならJWTぽい(公式見る限り) 認証もFunctionで思いのまま
None
Hasura GraphQL Engine(はすらぐらふきゅえるえんじん) GitHub: https://github.com/hasura/graphql-engine DockerHub: https://hub.docker.com/r/hasura/graphql-engin e/
特徴 ❏ PostgreSQL専用 ❏ Hasuraのサービスを一部OSSに切り出し ❏ PostGraphileと違いDBスキーマの管理画面を有 する ❏ 認証はJWT以外にもWebhookで自在(firebaseも
可能)
None
Prisma(ぷりずま) GitHub: https://github.com/prisma/prisma DockerHub: https://hub.docker.com/r/prismagraphql/prisma /
特徴 ❏ 複数のRDBMS等に対応 (MySQL,PostgreSQL,MongoDB一部) ❏ 紹介する中では勢いは一番ある なぜならGraphQL tutorialに掲載 ❏ 認証は自前で実装する必要あり
❏ Prismaのclient libraryも近々リリース (現在beta)
比較 PostGraphile Hasura GraphQL Engine Prisma GitHubスター数 対応データベース 認証機構 導入方法
実装言語 5,919 3,933 10,422 Nodejs Haskell Scale PostgreSQL PostgreSQL PostgreSQL, MySQL MongoDB Function独自実装 Webhook Nodejs独自実装 npm or docker docker npm or docker その他特徴 PostgeSQL上です べて実装可能 管理画面付きで使 いやすい なんといっても GraphQL公式
まとめ
まとめ ❏ SQLエンジンがGraphQLを解釈できるようになる 感覚でOK ❏ GraphQL APIサクッと作るだけならそこまでハード ルは高くない ❏ フロントエンド技術の発展とGraphQL
SQL Library の登場でC/Sシステム構造に近い形になる(かも)
ご清聴ありがとうご ざいました。 rito@chimame_rt