Submit Search
GraphQL with scala
0 likes
488 views
Yoshiteru Takeshita
Scala勉強会での発表資料
Engineering
Read more
1 of 11
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
More Related Content
PPTX
Log collect with google fluentd
Zaki_XL
PDF
Google bigquery導入記
Yugo Shimizu
PDF
20181031 springfest spring data geode
Masaki Yamakawa
PPTX
HTML入門
sayoko miura
PDF
AngularFireで楽々バックエンド
Yosuke Onoue
PDF
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
PDF
Isomorphic web development with scala and scala.js
TanUkkii
PDF
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
Log collect with google fluentd
Zaki_XL
Google bigquery導入記
Yugo Shimizu
20181031 springfest spring data geode
Masaki Yamakawa
HTML入門
sayoko miura
AngularFireで楽々バックエンド
Yosuke Onoue
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
Isomorphic web development with scala and scala.js
TanUkkii
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
Similar to GraphQL with scala
(20)
PPTX
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
PDF
GraphQL入門 (AWS AppSync)
Amazon Web Services Japan
PPTX
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
洵貴 佐川
PDF
Caliban: Functional GraphQL Library for Scala
Pierre Ricadat
PPTX
Microsoft Graphことはじめ クエリパラメータ編
DevTakas
PPTX
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
PPTX
JapanDreamin24_はじめてのGraphQL×LWC.pptx
Ryota Tabuse
PDF
Angular.jsについてちょっとしゃべる
Masashi Haga
PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
PDF
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
decode2016
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
PDF
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Platform - Japan
PDF
named_scope more detail - WebCareer
Kyosuke MOROHASHI
PDF
20241114_flutter_tokyo_flutter_graphql_usequery.pdf
IgaHironobu
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
PDF
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
PPTX
エンタープライズ分野での実践AngularJS
Ayumi Goto
PDF
PHPフレームワーク入門
Sho A
PDF
G * magazine 0
Tsuyoshi Yamamoto
PDF
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
y_taka_23
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
GraphQL入門 (AWS AppSync)
Amazon Web Services Japan
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
洵貴 佐川
Caliban: Functional GraphQL Library for Scala
Pierre Ricadat
Microsoft Graphことはじめ クエリパラメータ編
DevTakas
Spring data-rest-and-spring-cloud-contract
Takeshi Ogawa
JapanDreamin24_はじめてのGraphQL×LWC.pptx
Ryota Tabuse
Angular.jsについてちょっとしゃべる
Masashi Haga
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
decode2016
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Platform - Japan
named_scope more detail - WebCareer
Kyosuke MOROHASHI
20241114_flutter_tokyo_flutter_graphql_usequery.pdf
IgaHironobu
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
エンタープライズ分野での実践AngularJS
Ayumi Goto
PHPフレームワーク入門
Sho A
G * magazine 0
Tsuyoshi Yamamoto
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
y_taka_23
Ad
More from Yoshiteru Takeshita
(7)
PDF
Developing large-scale smart-phone game servers by a single person
Yoshiteru Takeshita
PDF
Play framework+docker+aws ecr+aws beanstalk で楽々デプロイ
Yoshiteru Takeshita
PDF
Scala Matsuri 2016コミュニティセッション
Yoshiteru Takeshita
PDF
Scala導入あれこれ
Yoshiteru Takeshita
PDF
Unityでreflection入門
Yoshiteru Takeshita
PDF
Dslからのコードジェネレーションで楽々play開発
Yoshiteru Takeshita
PDF
Scala web framework比較
Yoshiteru Takeshita
Developing large-scale smart-phone game servers by a single person
Yoshiteru Takeshita
Play framework+docker+aws ecr+aws beanstalk で楽々デプロイ
Yoshiteru Takeshita
Scala Matsuri 2016コミュニティセッション
Yoshiteru Takeshita
Scala導入あれこれ
Yoshiteru Takeshita
Unityでreflection入門
Yoshiteru Takeshita
Dslからのコードジェネレーションで楽々play開発
Yoshiteru Takeshita
Scala web framework比較
Yoshiteru Takeshita
Ad
GraphQL with scala
1.
ScalaでGraphQL 芸者東京 竹下義晃
2.
GraphQLとは https://graphql.org/learn/ クライアント <-> サーバー間のリクエストを行うためのク エリ言語仕様 Facebookが開発。githubも採用
3.
GraphQLとは Schema Query type Query
{ user (id : Long!): User } type User { id: Long! nickname: String! friends: [User!]! } query { user(id: 1) { id nickname friends { nickname friends { nickname } } } } Schemaを定義して、サーバーとクライアントで共有 Queryで取得したいフィールドをだけを指定して取得 Schema,Queryは独自文法、結果はjson(が普通) 結果 { “data”: { “id”: 1, “nickname”: “Hoge”, “friends”: [{ “nickname”: “Fuga, “friends”: [{ “nickname”:”foo” }, ...] }, …] } }
4.
メリット ● 複数のリクエストを一つにまとめられる ● サーバーとクライアントの実装をGraphQLで分断できる ●
様々なツール、ライブラリのサポートを受けられる デメリット ● パフォーマンスを出すための暗黙の知識が結構必要 ● まだ普及仕切っていないので使える人は限られる
5.
複数のリクエストを1つにまとめられる query getUserAndNews{ user(id: 1)
{ nickname } news(size: 20) { title body } } Restだと2つのAPIを呼び出す(かわざわざ2つの機能を合体させた新しいEndpointを作 る)必要があるような呼び出しを、クエリを書き換えるだけでまとめて呼び出せる ただ、Http2が普及すれば、このメリットはほぼ無くなる。よくメリットとして上げられるが、 割とどうでもいいと思っている
6.
サーバーとクライアントの実装を分断できる Schemaを共有することで、サーバーができていなくても事前にクライアントの実装がで きる。また、細かな仕様変更もクライアント側でQueryを修正するだけで対応できる ただのRestAPI API仕様策定 -> サーバー実装
-> 修正 -> クライアント実装 -> 接続試す -> 修正 (サーバー、クライアント共に実装完了しないとテストが困難) GraphQL API仕様策定 -> サーバー実装 -> 適当なQuery投げてテスト -> クライアント実装 -> 投げるQuerySchemaに合うかチェック -> 接続試す
7.
様々なツール、ライブラリのサポートを受けられる 標準化されていることで、対応したツール、ライブラリを使用できるのでいろいろらくでき る # GraphiQL Queryを書いて、投げて、結果を見れるツール。Queryの保管もやってくれる # 各言語ライブラリ Schema,Queryのパースや組み立てをやってくれる
8.
デメリット # パフォーマンスを出すための暗黙の知識が結構必要 これはRestAPIだとしてもあり得るのでそこまでデメリットではないが、やはり特有の最 適化知識は必要になってきそう # まだ普及仕切っていないので使える人は限られる 即使えますって人はまだあまりいないと思います。啓蒙必要
9.
Scalaでは? Sangria( https://sangria-graphql.org/ ) というライブラリがある。サーバー/クライアントどちらにも使用可能 機能は大体ドキュメントとサンプルみればわかる 機能 Query ●
DSLによるQuery構築 ● テキストからのQueryのパース ● Schema検証 ● Queryの実行 Schema ● DSLによるSchema構築 ● AnnotationベースによるDSL自動生成 ● テキストからのSchemaのパース
10.
自分で書きたく無い機能群 # Introspectionの機能 Schemaの情報を返す機能。勝手にサポートしてくれる # やばいクエリの検証機能 リスト取得時に大きすぎるsize指定や、深すぎるネストをバリデーションして実行時に弾 く機能がある #
N+1問題の対応機能 (すごく使いやすいわけでは無いが)内部で複数のDBアクセスをまとめて1回の実行にす ることのできる汎用機構がある
11.
余談 GraphQLを使うとリクエストがqueryとmutationに分離されるので、 CQRS( https://docs.microsoft.com/ja-jp/azure/architecture/patterns/cqrs ) の設計パターンと親和性が高いのでは?
Download