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
サーバーとは。(あとゲーム) / server
Search
misoobu
September 13, 2016
Technology
0
80
サーバーとは。(あとゲーム) / server
学生さん向け資料。
misoobu
September 13, 2016
Tweet
Share
More Decks by misoobu
See All by misoobu
論理削除と、そこでのElasticsearch活用 | 論理削除 Casual Talks #1 / soft_delete
misoobu
9
21k
平和なエンジニア生活を送りたい
misoobu
0
890
Other Decks in Technology
See All in Technology
SRE NEXT 2026 CfP レビュアーが語る聞きたくなるプロポーザルとは?
yutakawasaki0911
1
440
1GB RAMのラズピッピで何ができるのか試してみよう / 20260319-rpijam-1gb-rpi-whats-possible
akkiesoft
0
490
Go標準パッケージのI/O処理をながめる
matumoto
0
230
AWSの資格って役に立つの?
tk3fftk
2
370
銀行の内製開発にて2つのプロダクトを1つのチームでスクラムしてみてる話
koba1210
1
150
今のWordPress の制作手法ってなにがあんねん?(改) / What’s the Deal with WordPress Development These Days?
tbshiki
0
510
Kiro Powers 入門
k_adachi_01
0
120
進化するBits AI SREと私と組織
nulabinc
PRO
1
250
めちゃくちゃ開発するQAエンジニアになって感じたメリットとこれからの課題感
ryuhei0000yamamoto
0
130
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
660
頼れる Agentic AI を支える Datadog のオブザーバビリティ / Powering Reliable Agentic AI with Datadog Observability
aoto
PRO
0
210
Google系サービスで文字起こしから勝手にカレンダーを埋めるエージェントを作った話
risatube
0
190
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
110
Everyday Curiosity
cassininazir
0
170
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Darren the Foodie - Storyboard
khoart
PRO
3
2.9k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
74
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
640
A designer walks into a library…
pauljervisheath
210
24k
Transcript
αʔόʔͱɻ ͏ͪʹ͓͚Δαʔόʔͱɻ 2016/09/07 ֶੜ͚Πϕϯτ ฤू൛
αʔόʔͱ ήʔϜʹ͓͚Δαʔόʔͱ ༷ʑͳσʔλʹ͍ͭͯ ήʔϜͰͲͷΑ͏ͳ௨৴͕͋Δͷ͔ αʔόʔʹٻΊΒΕΔ͜ͱ ͢͜ͱ
αʔόʔͱɺ ΫϥΠΞϯτ ͷཁٻʹର͠ɺ αʔϏεΛఏ ڙ͢Δͷɻ αʔόʔ
༷ʑͳαʔόʔ ͳͲͳͲ… ݕࡧͷαʔόʔ ϑΝΠϧͷαʔόʔ ϝʔϧͷαʔόʔ ϞόΠϧήʔϜͷαʔόʔ Web αʔϏεͷαʔόʔ
Web αʔϏεͱήʔϜʹ͓͚Δαʔόʔ ΫϥΠΞϯτΞϓϦ͔Βͷ ϦΫΤετʹର͠ॲཧΛͯ͠ JSON Ξʔτૉࡐɺ εΫϦϓτͳͲͷ ඞཁͳίϯςϯπΛฦ͢ ϒϥβ͔Βͷ ϦΫΤετʹର͠ॲཧΛͯ͠
HTML/JSON Ξʔτૉࡐɺ εΫϦϓτͳͲͷ ඞཁͳίϯςϯπΛฦ͢ Web αʔϏε ϞόΠϧωΠςΟϒήʔϜ
Web αʔϏεͱήʔϜʹ͓͚Δαʔόʔ ͍͍ͩͨಉ͡ ΫϥΠΞϯτΞϓϦ͔Βͷ ϦΫΤετʹର͠ॲཧΛͯ͠ JSON Ξʔτૉࡐɺ εΫϦϓτͳͲͷ ඞཁͳίϯςϯπΛฦ͢ ϒϥβ͔Βͷ
ϦΫΤετʹର͠ॲཧΛͯ͠ HTML/JSON Ξʔτૉࡐɺ εΫϦϓτͳͲͷ ඞཁͳίϯςϯπΛฦ͢ Web αʔϏε ϞόΠϧωΠςΟϒήʔϜ ͔͜͜Βɺͬͪ͜ˢΛྫʹΛ͢Δ
ʹݟ͑Δ෦ɺେମΫϥΠΞϯτ ΞϓϦʹΑΔ࣮ αʔόʔΛඞཁͱ͠ͳ͍ήʔϜଟ͍ αʔόʔ͕͋ΔͱԿ͕Ͱ͖Δͷ͔ʁ ʢαʔόʔԿΛ͢Δͷ͔ʁʣ ήʔϜʹ͓͚Δαʔόʔ
ԕ͘ͷ୭͔ͱܨ͕Δ ్தͰήʔϜ༰ͷΞοϓσʔτɺ੍ޚ ΞΧϯτཧʹΑΔɺෳͷڥͰͷ ϓϨΠ ӡӦଆͱͯ͠ɺϢʔβʔͷߦಈΛੳ αʔόʔ͕͋ΔͱԿ͕Ͱ͖Δͷ͔
ԕ͘ͷ୭͔ͱܨ͕Δ ్தͰήʔϜ༰ͷΞοϓσʔτɺ੍ޚ ΞΧϯτཧʹΑΔɺෳͷڥͰͷ ϓϨΠ ӡӦଆͱͯ͠ɺϢʔβʔͷߦಈΛੳ αʔόʔ͕͋ΔͱԿ͕Ͱ͖Δͷ͔ ରઓɺϥϯΩϯάɺڠྗ
ԕ͘ͷ୭͔ͱܨ͕Δ ్தͰήʔϜ༰ͷΞοϓσʔτɺ੍ޚ ΞΧϯτཧʹΑΔɺෳͷڥͰͷ ϓϨΠ ӡӦଆͱͯ͠ɺϢʔβʔͷߦಈΛੳ αʔόʔ͕͋ΔͱԿ͕Ͱ͖Δͷ͔ ৽͍͠ΠϕϯτͷՃ
ԕ͘ͷ୭͔ͱܨ͕Δ ్தͰήʔϜ༰ͷΞοϓσʔτɺ੍ޚ ΞΧϯτཧʹΑΔɺෳͷڥͰͷ ϓϨΠ ӡӦଆͱͯ͠ɺϢʔβʔͷߦಈΛੳ αʔόʔ͕͋ΔͱԿ͕Ͱ͖Δͷ͔ Λͳͯ҆͘͠৺
ԕ͘ͷ୭͔ͱܨ͕Δ ్தͰήʔϜ༰ͷΞοϓσʔτɺ੍ޚ ΞΧϯτཧʹΑΔɺෳͷڥͰͷ ϓϨΠ ӡӦଆͱͯ͠ɺϢʔβʔͷߦಈΛੳ αʔόʔ͕͋ΔͱԿ͕Ͱ͖Δͷ͔ ੳɾվળɺϢʔβʔαϙʔτ
σʔλͷཧɺαʔόʔͷେࣄ ͳࣄͷͻͱͭɻ αʔόʔ͕͋ΔͱԿ͕Ͱ͖Δͷ͔ σʔλͰɺ৭ʑͳ͜ͱ͕Ͱ͖Δɻ
Ϛελʔσʔλ Ϣʔβʔσʔλ ͪΐͬͱผ͔࣠ΒɺΞʔτؔ࿈σʔλ ʢը૾, 3D ૉࡐ…ʣ ༷ʑͳσʔλ ͦΕͧΕɺѻ͍͕ҟͳΔ
ӡӦଆ͕ఆٛ͢Δɺجૅใͱͳ Δσʔλ ݻఆతͳσʔλ ྫ: ͜ΜͳΩϟϥ͕͍ͯɺ͜Μͳύ ϥϝʔλʔͰ… ༷ʑͳσʔλ Ϛελʔσʔλ
ϢʔβʔͷߦಈʹΑͬͯͰ͖Δɺग़དྷࣄΛ ه͢Δσʔλ ྲྀಈతͳσʔλ ྫ: Ϣʔβʔ͕ॴ͍࣋ͯ͠Δɺͱ͋ΔΞΠ ςϜͷݸ ༰ྔ͕େ͖͘ͳΓ͍͢ ༷ʑͳσʔλ Ϣʔβʔσʔλ
αʔόʔ ଞʹɺϦΞϧλΠϜαʔόʔͳͲɻ 8FC"QQ 8FC"QQ 8FC"QQ 3%# 8FC"QQ ,74 -PBE #BMBODFS
-PBE #BMBODFS "TTFUT "TTFU 8FC"QQ #BUDI Web API ϢʔβʔσʔλͳͲ Ϛελʔσʔλ ΞʔτσʔλͳͲ => ͜͜Ͱ·ͱΊͯ ϦιʔεͱݺͿ $%/ 8FC"QQ
1. ήʔϜىಈ •ϩάΠϯ POST /session •Ϧιʔεʹߋ৽͕͋Ε DL 2. ϗʔϜը໘ •͓ΒͤΛऔಘͯ͠දࣔ
GET /notices 3. ΫΤετΛબΜͰ։࢝ •ϦιʔεͷϚελʔσʔλ͔ΒɺΫΤετͷҰཡΛಘΔ •։࢝ POST /user_quests 4. ΫΤετͷϓϨΠ݁ՌΛૹͬͯऴྃ PUT /user_quests/1234/finish •༩͞Εͨใुͷσʔλฦͬͯ͘Δɺ݁Ռදࣔ ࣮ࡍͷήʔϜϓϨΠͰͷ௨৴ྫ
ଟͷ Web API ͕Ͱ͖Δ API ͔Γ͘͢ͳͯ͘ͳΒͳ͍ HTTP ϝιου, ύε… ܗࣜͷ౷Ұ
=> RESTful API API ΠϯλʔϑΣΠεͷ౷Ұ
ن͕େ͖͘ͳΔͱɺαʔόʔɾΫϥΠΞϯτͰ࣮ऀ͕ มΘΔ͜ͱ͕ଟ͍ REST ʹͬͯڞ༗ࣄ߲ґવଟ͍ ύϥϝʔλʔ, Ϩεϙϯεͷܗࣜ… ϓϩάϥϚϒϧͳυΩϡϝϯτԽ, ڞ௨Խͷҝʹɺ JSON Hyper-Schema
Open API API ͷόʔδϣχϯά αʔόʔͱΫϥΠΞϯτͰଉΛ߹ΘͤΔ
ৗʹෆਖ਼νʔτʹૂΘΕΔ ྫ͑ɺΫϥΠΞϯτͰͷॲ ཧ݁ՌΛվมͯ͠ɺͦΕΛαʔ όʔʹ͛ͤ͞Δ αʔόʔͱΫϥΠΞϯτͷॲཧͷڥք
αʔόʔɺجຊతʹΫϥΠΞϯτ͔ΒͷϦΫΤετ৴༻ͯ͠ ͳΒͳ͍ ௨৴ͷ҉߸Խ ৗʹɺ͓͔͘͠ͳ͍͔֬ೝ͢Δ ॏཁͳॲཧඞͣαʔόʔͰ࣮ߦ ྫ: Ψνϟͷநબ ݕ͘͠ʹ͍͘ͷͰɺ໌Β͔ʹո͚͠ΕӡӦʹ௨ => BAN
αʔόʔͱΫϥΠΞϯτͷॲཧͷڥք
ʮಈ͘ʯ͚ͩͰͳ͘ʮޙͷ͜ͱߟ ্ྀͨ͠Ͱಈ͘ʯ ͱΓ͋͑ͣಈ͚ͩ͘ͳΒ͙͕ͩ͢… ଟ͘ͷϢʔβʔΛࢧ͑ΒΕΔ͜ͱ ޙͷӡ༻͕Γ͍͢͜ͱ αʔόʔʹٻΊΒΕΔ͜ͱ
ଟ͘ͷϢʔβʔΛࢧ͑ΒΕΔ͜ͱ ෛՙରࡦ ΫΤϦվળ DB ׂ Ωϟογϡ ͳͲͳͲ ڊେͳσʔλɺϩάͷཧ αʔόʔʹٻΊΒΕΔ͜ͱ
ޙͷӡ༻͕Γ͍͢͜ͱ ઃܭίʔυ͕͔Γ͍͢ɺ৮Γ͍͢ ϚελʔσʔλͷՃमਖ਼ͷ࡞ۀ͕؆୯ ϢʔβʔσʔλΛݟ͘͢ཧը໘ʹ දࣔ͠ɺϢʔβʔαϙʔτͷޮԽ αʔόʔʹٻΊΒΕΔ͜ͱ
αʔόʔσʔλͷΛ͞Βͬͱͨ͠ ΤϯδχΞϦϯάͷੈք͘ਂ͘ɺͦͯ͠໘ന͍ ͏ͪʹɺͦͦ͜͜ͷنͷαʔϏε͕͍ͭ͋͘Δ ৽͍͠ͷ૿͍͑ͯΔ ൺֱతͷ͋Δʮ͍͍ࣄʯͷػձಘ͍͢ => ܦݧΛஷΊ͍͢ڥͩͱࢥ͏ కΊ
͓·͚: ϝοηʔδ ͦͷҝʹ… ৫ͰΤϯδχΞͱͯ͠ࣄΛ͢ Δͱ͍͏͜ͱɺ༷ʑͳೳྗͷ૯ ྗઓɻ ͦͷதͷʮٕज़ྗʯΛຏ͘ͱ͍͏ ʹ͓͍ͯɺࢲ͕େͩͱࢥͬͨ ͜ͱΛհ͓ͯ͘͠ɻ
࣮ݱͤ͞Δ͜ͱ ࣗͷཧΛ࣋ͭ͜ͱɺ ͦ͜Λࢦཱ͔ͯͪ͠͏͜ͱ ͓·͚: ϝοηʔδ ͦͷҝʹ…
ਅࣅͯͭ͘͠Δ => ࣗͰߟ͑ͯͭ͘Δ ษڧΛ͢Δɺ͚ͭͮ͠Δؾ࣋ͪ ΞϯςφΛுΓɺʹΠϯσοΫεΛͭ͘Δ దͳϓϥΠυ ʮࣗͰΓΔʯͱʮཔΔʯͷόϥϯε ͍͠… ͓·͚: ϝοηʔδ