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
Rails / GraphQLでAPIサーバーを開発して感じた使い勝手.pdf
Search
taikishiino
July 25, 2019
Technology
0
110
Rails / GraphQLでAPIサーバーを開発して感じた使い勝手.pdf
taikishiino
July 25, 2019
Tweet
Share
More Decks by taikishiino
See All by taikishiino
Reactを使ったWebフロントエンドに_アーキテクチャを導入する.pptx.pdf
taikishiino
0
130
React / TypeScript_の_コード品質について考えた.pdf
taikishiino
0
72
webにおけるサイトの表示速度と検索順位の研究.pdf
taikishiino
0
49
Other Decks in Technology
See All in Technology
YJIT Makes Rails 1.7x faster / RubyKaigi 2024
k0kubun
3
480
Laboratories in Science and Technology: Deep Neural Networks
keio_smilab
PRO
3
160
.NET GraphQL Client のリアル
sansantech
PRO
1
320
Real World Type Puzzle and Code Generation
yukukotani
4
640
AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6
fujiwara3
6
3.3k
技術力の伸ばし方を考える
khirata
0
140
本番環境で Cloudflareを 使ってみた話
miu_crescent
2
130
本当のガバクラ基礎
toru_kubota
0
320
株式会社EventHub・エンジニア採用資料
eventhub
0
2.1k
Databricksの生成AI戦略
taka_aki
1
370
令和版ソフトウェアエンジニアの情報収集術 PHPカンファレンス香川2024
ysknsid25
4
900
OPENLOGI Company Profile for engineer
hr01
1
2.2k
Featured
See All Featured
Visualization
eitanlees
137
14k
[RailsConf 2023] Rails as a piece of cake
palkan
29
4.1k
Faster Mobile Websites
deanohume
300
30k
How STYLIGHT went responsive
nonsquared
92
4.8k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Unsuck your backbone
ammeep
664
57k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
What's in a price? How to price your products and services
michaelherold
238
11k
Code Review Best Practice
trishagee
56
15k
Building Flexible Design Systems
yeseniaperezcruz
320
37k
How to name files
jennybc
65
94k
The Cult of Friendly URLs
andyhume
74
5.7k
Transcript
Rails × GraphQLでAPIサーバー を開発して感じた使い勝手 created_at: 2019-03-23 updated_at: 2019-03-25
@buena926 椎野 太喜 (22) ◇ 趣味 ・旅行 ・釣り ・スノーボード ◇
免許 ・PADIオープンウォーターダイバーライセンス ・普通自動車免許(AT限定) 茨城県出身 redish株式会社 新卒エンジニア Rails / Angular / Vue / Nuxt / AWS 自己紹介
今日の話ついて 「自分自身のテックブログを作ろう!」がきっ かけ 右のような感じでバックエンドとフロントエンドを 分けて作ってみたい。 GraphQLをRails(APIモード)に導入して開発し たみたお話です。 クライアントアプリ (React) APIサーバー
(Rails) GraphQL or REST
GraphQLとは? Facebook社が開発したAPI用のクエリ言語 ・データの取得や更新を基本的にPOSTで行う ・POSTのリクエストパラメーターにクエリを生やして、APIに対して行いたい処 理を指定する RESTfull APIと比較対象にされる技術
GraphQLでよかったこと A)APIの設計がとてもシンプル ① エンドポイントが1つだけ ② APIのレスポンスについて指定する必要がない B)クライアントの実装が楽になる ① クエリの実行環境とドキュメントを提供してくれるツールがある ②
欲しいデータのみをリクエストできる
GraphQLでよかったこと A)APIの設計がとてもシンプル ① エンドポイントが1つだけ ② APIのレスポンスについて指定する必要がない B)クライアントの実装が楽になる ① クエリの実行環境とドキュメントを提供してくれるツールがある ②
欲しいデータのみをリクエストできる
① エンドポイントが1つだけ RESTfull API GraphQL
② レスポンスの詳細について指定する必要がない QueryTypeにAPIで扱うリソースの型を定義しておく(静的型付けよい) あとは、Queryに指定するだけでリクエストに応じた柔軟なレスポンスになる
GraphQLでよかったこと A)APIの設計がとてもシンプル ① エンドポイントが1つだけ ② APIのレスポンスについて指定する必要がない B)クライアントの実装が楽になる ① クエリの実行環境 +
APIドキュメントツールがある ② 欲しいデータのみをリクエストできる
① クエリの実行環境 + APIドキュメントツールがある クエリ実行環境 APIドキュメント
② 欲しいデータのみをリクエストできる Request Params JSON Response [GET] https://myblog.com/graphql?query=graphql_query
Request Params JSON Response [POST] https://myblog.com/graphql?query=graphql_query ② 欲しいデータのみをリクエストできる
Rails × GraphQLのテストについて ① クエリのテストを書く ・クエリ全体のテスト ⇒ システム全体で「健全性チェック」 ・各クエリのテスト ⇒
実際にクエリを叩いて、想定するリクエスト が返ってくるか
Rails × GraphQL テストについて ② 各ObjectType ごとのテスト ・スキーマ要素 ⇒ 各Typeに定義されたスキーマ要素をテストする
・リクエスト ⇒ エラーケースについてテストを書くのが良さそう 例)認可されていないアクセスに対して 401 を返す処理があ る場合、そのレスポンスをテストする、、など
まとめと今後 ・APIサーバーをAWSにデプロイする ・クライアントを作成する(React × Apollo使用予定) ・テックブログ完成