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
バックエンドが異なるサービスの差分を APIで吸収してみた話
Search
noripi
September 01, 2017
Technology
1
1.8k
バックエンドが異なるサービスの差分を APIで吸収してみた話
2017.09.01 retty tech nightのスライドです。
noripi
September 01, 2017
Tweet
Share
More Decks by noripi
See All by noripi
KotlinでAPIを型安全にした話
noripi
0
1.7k
Kotlinで型安全なSQLを書こう
noripi
0
900
サーバサイドKotlinのすすめ
noripi
0
12k
サーバーサイドKotlinのすすめ(仮)
noripi
0
780
Other Decks in Technology
See All in Technology
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
170
Delegating the chores of authenticating users to Keycloak
ahus1
0
140
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
130
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
120
How Do I Contact HP Printer Support? [Full 2025 Guide for U.S. Businesses]
harrry1211
0
120
関数型プログラミングで 「脳がバグる」を乗り越える
manabeai
1
190
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
400
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
7
1.1k
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
360
ゼロからはじめる採用広報
yutadayo
3
920
Should Our Project Join the CNCF? (Japanese Recap)
whywaita
PRO
0
340
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
130
Featured
See All Featured
Faster Mobile Websites
deanohume
307
31k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Done Done
chrislema
184
16k
Rails Girls Zürich Keynote
gr2m
95
14k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Speed Design
sergeychernyshev
32
1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Embracing the Ebb and Flow
colly
86
4.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
For a Future-Friendly Web
brad_frost
179
9.8k
Transcript
όοΫΤϯυ͕ҟͳΔαʔϏεͷࠩΛ "1*Ͱٵऩͯ͠Έͨ 3FUUZ5FDI/JHIU /PSJZVLJ*TIJEB
͍͋ͭ͝͞"CPVUNF ɾੴాݑ/PSJZVLJ*TIJEB ɾ3FUUZ *OD ɾΞϓϦ༻"1* ,PUMJO+BWB ɾJ04 4XJGU0CKFDUJWF$ ɾւ֎͚αʔϏε
8FC%#ઃܭΠϯϑϥӡ༻ ɾલ৬ָఱ ɾഅ݊Λൢച͢ΔαʔϏεͰ8FCͷ։ൃɾӡ༻Λ୲ ɾࠃ͚
ຊͷ͓ ɾ3FUUZͷւ֎͚αʔϏε ɾݟ্͔͚ຊͱಉ͡αʔϏεͰΞϓϦಉҰ ɾͰόοΫΤϯυҟͳ͍ͬͯΔ ɾ"1*ͰࠩΛٵऩ͢ΔͨΊʹ͍ͬͯΔ͜ͱ ɾ·ͱΊ ɾࠩ"1*Ͱٵऩ͍ͯ͠Δ
3FUUZͷւ֎͚αʔϏε
3FUUZݱࡏຊΛؚΉΧࠃͰ αʔϏεల։த
3FUUZͷւ֎ల։ঢ়گ
3FUUZͷຊ͚αʔϏεͱւ֎͚αʔϏε ɾຊ͚αʔϏεͱւ֎͚αʔϏε ɾຊ͚ɿ8FC͓ΑͼΞϓϦͰαʔϏεల։த ɾւ֎͚ɿΞϓϦͰαʔϏεల։தʢҰ෦ػೳ੍ݶ͋Γʣ
3FUUZͷຊ͚αʔϏεͱւ֎͚αʔϏε ɾಉҰΞϓϦ͕ͩόοΫΤϯυҟͳΔ ຊ͚αʔϏε ւ֎͚αʔϏε ຊ༻%# ւ֎༻%# ຊ༻"1*αʔό ւ֎༻"1*αʔό
ຊ͚ͱւ֎͚ͰผʑʹόοΫΤϯυΛ༻ҙͨ͠ཧ༝ ɾຊʹ࠷దԽ͞Ε͍͗ͯ͢Δ ɾւ֎͚ʹαʔϏεΛ͢Δ࣌ͷ͜ͱͦ͜·Ͱఆ͞Ε͍ͯͳ͍ ɾ%#Λ࠶ઃܭ͢Δ͍͍ػձ ɾӡ༻ن͕େ͖͘ͳ͖ͬͯͨͷͰؾܰʹεΩʔϚมߋͰ͖ͳ͍ ɾҰํͰઃܭΛݟ͍ͨ͠Օॴঃʑʹ૿͖͍͑ͯͯΔ ɾຊʹͳΔ͘ӨڹΛग़ͨ͘͠ͳ͍ ɾຊͱւ֎Λൺֱͨ͠ͱ͖ͷαʔϏεنͷ؍͔Β ɾ࣌ࠁʹ࣌ؒՃࢉ͢ΔϩδοΫ͕ਵॴʹຒΊࠐ·Ε͍ͯΔ
ͱ͍͑ ͦΜͳ͜ͱΛߟ͑ͳ͕ΒΞϓϦΛ࡞Δͱ
ͭΒͦ͏ʜ
ͦ͏ͳΒͳ͍Α͏ʹ ͳΔ͘"1*ͰࠩΛٵऩ͍ͯ͠·͢
"1*ͰࠩΛٵऩ͢ΔͨΊʹ͍ͬͯΔ͜ͱ
͍ͬͯΔ͜ͱ ɾ"1*ͷܗࣜΛ౷Ұ͢Δ ɾΤϯυϙΠϯτΛ౷Ұ͢Δ ɾ)551ϝιου ɾύϥϝʔλ ɾฦΓܗࣜ ɾίϯςϯπλΠϓ
"1*ͷશମઃܭ ɾ+"934ʹଇΓɺ+BWBͷΫϥεϝιουͰ ɹΤϯυϙΠϯτΛఆٛ ɾύεɺ)551ϝιουɺฦΓͷܗࣜɺίϯςϯπλΠϓ
"1*ͷશମઃܭ ɾσʔλΛΓऔΓ͢ΔྲྀΕ %"0 Ϟσϧ Ϧιʔε ΞϓϦ (&5SFTUBVSBOUT\JE^ σʔλετϨʔδ
"1*
ڞ௨Խ͍ͨ͠෦ͱͦ͏Ͱͳ͍෦ ɾϦιʔεڞ௨Խ͍ͨ͠ %"0 Ϟσϧ Ϧιʔε ΞϓϦ (&5SFTUBVSBOUT\JE^ ɾ֎͖ͷΠϯλϑΣʔε͕ఆٛ͞Ε͍ͯΔ
σʔλετϨʔδ "1*
ڞ௨Խ͍ͨ͠෦ͱͦ͏Ͱͳ͍෦ ɾͦΕҎ֎ͷ෦ڞ௨Խ͕͍͠ %"0 Ϟσϧ Ϧιʔε ΞϓϦ (&5SFTUBVSBOUT\JE^ "1*
ɾσʔλετϨʔδʹ͍ۙͳͷͰڞ௨Խͯ͋͠·Γҙຯ͕ͳ͍
ڞ௨Խ͍ͨ͠෦ͱͦ͏Ͱͳ͍෦ ɾ%"0ͷ෦ΛΠϯλϑΣʔεԽͯ͠நԽ Ϟσϧ Ϧιʔε ΞϓϦ (&5SFTUBVSBOUT\JE^ %"0 %"0
Ϟσϧ "1*
ڞ௨Խ͍ͨ͠෦ͱͦ͏Ͱͳ͍෦ ɾ%"0ͷ෦ΛΠϯλϑΣʔεԽͯ͠நԽ
"1*ͷܗࣜΛ౷Ұ͢Δ ɾϦιʔεΫϥεܧঝͰϩδοΫΛڞ௨Խ
ΤϯυϙΠϯτΛ౷Ұ͢Δ ຊ༻%# ւ֎༻%# ຊ༻"1*αʔό ւ֎༻"1*αʔό ɾΤϯυϙΠϯτΛ౷Ұ͠ͳ͍ͱɺΞϓϦଆͰ ɹͲͬͪʹߦ͔͘அ͠ͳ͍ͱ͍͚ͳ͘ͳΔ ຊ͚αʔϏε
ւ֎͚αʔϏε ?
ΤϯυϙΠϯτΛ౷Ұ͢Δ ຊ༻%# ւ֎༻%# ຊ༻"1*αʔό ւ֎༻"1*αʔό ɾήʔτΣΠΛ͏͜ͱʹΑͬͯຊ༻ͱւ֎༻ ɹͷΤϯυϙΠϯτΛ౷Ұ ຊ͚αʔϏε
ւ֎͚αʔϏε
ΤϯυϙΠϯτΛ౷Ұ͢Δ ຊ༻%# ւ֎༻%# ຊ༻"1*αʔό ւ֎༻"1*αʔό ɾήʔτΣΠ͕શڥͷηογϣϯΛཧͯ͠ ɹదͳํʹৼΓ͚ ຊ͚αʔϏε
ւ֎͚αʔϏε ຊ༻"1*αʔό ηογϣϯ ۭؒ
౷Ұ͞Εͨ݁Ռ ɾݟ্͔͚ͭͷ"1*Ͱຊւ֎ͷαʔϏεΛ ɹ͏͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔ ຊ͚αʔϏε ւ֎͚αʔϏε "1*
·ͱΊ
·ͱΊ ɾຊΛؚΊΧࠃʹαʔϏεల։த ɾΞϓϦ͕ͭͩόοΫΤϯυҟͳΔ ɾΞϓϦͷϩδοΫ͕ͭΒ͘ͳΒͳ͍Α͏ʹ"1*͕ؤு͍ͬͯ·͢ ɾ"1*͕͍ͬͯΔ͜ͱ ɾຊ͚ͷΤϯυϙΠϯτͱւ֎͚ͷΤϯυϙΠϯτʹܧঝؔ ɹΛ࣋ͨͤͯ֎͖ͷΠϯλϑΣʔεΛἧ͍͑ͯΔ ɾखલʹήʔτΣΠΛஔ͍ͯɺҧ͍Λҙࣝͤͣʹຊ͚ͱւ֎͚ ɹΛ͍͚Ͱ͖ΔΑ͏ʹ͍ͯ͠Δ
ɾࠓޙ͍͖͍ͬͯͨ͜ͱ ɾݱࡏւ֎͚ͷαʔϏε౦ژϦʔδϣϯ͔Βఏڙ ɾࠓޙԤถݍʹαʔϏεఏڙ͍ͯ͘͠ՄೳੑΛ౿·͑ͯϚϧνϦʔδϣϯ ɹରԠΓ͍ͨ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ