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
shorterql
Search
poccariswet
November 03, 2018
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
shorterql
fallLT_aizu
poccariswet
November 03, 2018
More Decks by poccariswet
See All by poccariswet
rust for web app
poccariswet
2
390
APNG maker on wasm
poccariswet
1
220
past and future
poccariswet
0
99
ncursesを学ぼう
poccariswet
0
88
i_and_go
poccariswet
0
79
editor
poccariswet
0
120
さぁ、深夜ラジオを聴こう!
poccariswet
1
130
Aizu-Go
poccariswet
1
180
Other Decks in Programming
See All in Programming
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
310
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
220
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
210
FDEが実現するAI駆動経営の現在地
gonta
2
270
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
React本体のコードリーディング
high_g_engineer
1
140
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
220
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
460
テーブルをDELETEした
yuzneri
0
140
メールのエイリアス機能を履き違えない
isshinfunada
0
230
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
180
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
150
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Navigating Team Friction
lara
192
16k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
890
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Designing Powerful Visuals for Engaging Learning
tmiket
1
480
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
360
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
Transcript
shorterql 2018/11/3
- soeyu - 3年 - Zli サークル - 趣味: 深夜ラジオ(bananamoon)
github 2 introduction
3 shorterql ?
4 url shortener + graphql api
5 url shortener + graphql api
6 url shortener 6 短縮URL(たんしゅくユーアールエル)とは、長い文字列のURLを短く したものである。リダイレクトを利用して本来の長いURLに接続する。 (wiki) - goo.gl (
3月で終了) - Firebase Dynamic Links (FDL) - Ow.ly - Bitly https://goo.gl/bQkBfu https://github.com/poccariswet/shorterql
7 Using url shortener 7 - URL の 共有 -
SNSの文字列制限 - bot等のメッセージフォーマットが崩れないように - サービスの終了に伴い、短縮URLと元となるURLの結びつき がなくなり、リンク切れになる可能性 - ドメインカスタムされたURLができない デメリット 最近のハロウィーン回 ” 2018年10月26日(金) ”
8 と言ったのが url shortener です
9 url shortener + graphql api
10 url shortener + graphql api
11 GraphQL 11 - クライアント・サーバ間 API用のクエリ言語でありランタイム - クライアントがサーバーからデータを取得,変更,購読できるようにするための データ言語 -
リアルタイム処理が可能(購読[サブスクリプション]) - REST API との違い (https://www.slideshare.net/keisuketsukagoshi/rest-api-graphql) ref • https://graphql.org/ 「チャーハン握り一番早く食 べられるのは?!の回」 ” 2018年9月21日(金) ”
12 GraphQL 3種類のオペレーションタイプ 12 Query 取得 Mutation 更新 Subscription 購読
「口笛を頑張る日村さん」 ” 2018年9月14日(金) ”
13 GraphQL メリット 13 - クライアントが欲しい情報だけをqueryで指定することが可能 query request response https://developer.github.com/v4/explorer/
- ドキュメント生成が楽 - 一回のリクエストで深い階層のデータまで取得可能 example スキーマ定義
14 GraphQL どーゆーときに使う? 14 https://aws.amazon.com/jp/campaigns/manga/vol4-3/
15 以上が graphqlと url shortenerです
16 url shortener + graphql api = shorterql
17 実装までの経緯 - url shortener: 夏のインターンで実際に調べたり、利用する 機会があってロジック等が気になったので、作ってみたくなった - GraphQL: 単に興味があって今回で知見を得体のと使ってみ
たかった 17 「オススメのお菓子を求め て!の回」 ” 2018年9月28日(金) ”
- LongURL をPostする - ShortURLを生成し、responseする 18 主な機能 18 「オススメのお菓子を求め て!の回」
” 2018年9月28日(金) ” - ShortURLを作る際に生成された hash値をIDに ShortURLの情報をgetできる 実装言語: go
19 実装 19 • Redis storage • Create Hash •
Redirect handler • GraphQL handler 「日村&オークラを笑わせろ!2018 Summer!」 ” 2018年8月31日(金) ”
20 Redis Storage 20
21 Create hash 21 • uuid ◦ 一意の値を生成 ◦ https://github.com/google/uuid
22 Redirect handler 22
23 GraphQL handler 23 - request body から query の取得
- そのqueryを実行する関数 へ飛ばす - 実行して得たresultをエン コードして出力
24 GraphQL 3種類のオペレーションタイプ 24 Query 取得 Mutation 更新 Subscription 購読
「口笛を頑張る日村さん」 ” 2018年9月14日(金) ”
25 GraphQL handler 25 Query (取得)
26 GraphQL handler 26 request response
27 GraphQL handler 27 Mutation (更新)
28 GraphQL handler 28 request response
29 まとめ 29 - 短いhash値を作るのがちょっと大変 (id(1...n) を生成してbase62 encodeすればいい?) - 公式リファレンスにGraphQLのexampleやチュートリアルがに
あるのでとっつきやすかった - 個人的にこれからサービスを作ろうと思っているので、それに graphql の apiを取り入れていければいいなと思った。 「設楽流、さくらんぼの種の かっこいい出し方!回」 ” 2018年6月1日(金) ”
30 最後に 30 - graphql チートシート (https://devhints.io/graphql) - Web app
graphql (https://wehavefaces.net/learn-golang-graphql-relay-1-e59ea 174a902) - Github graphql client (https://developer.github.com/v4/explorer/) - Bananamoon picture ref - (https://www.tbsradio.jp/banana/)
“ ご静聴ありがとうございました。 31