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
技術選定で失敗したはなし
Search
atomiyama
April 04, 2019
Programming
0
1.1k
技術選定で失敗したはなし
atomiyama
April 04, 2019
Tweet
Share
More Decks by atomiyama
See All by atomiyama
SchemaDrivenDevelopment
atomiyama
0
420
Rustでgemを作ろう
atomiyama
0
1.4k
ffi & native extension
atomiyama
0
230
はじめてのDocker
atomiyama
0
110
Other Decks in Programming
See All in Programming
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
330
Effective Signals in Angular 19+: Rules and Helpers @ngbe2024
manfredsteyer
PRO
0
130
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
710
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
430
선언형 UI에서의 상태관리
l2hyunwoo
0
150
テスト自動化失敗から再挑戦しチームにオーナーシップを委譲した話/STAC2024 macho
ma_cho29
1
1.3k
useSyncExternalStoreを使いまくる
ssssota
6
1k
命名をリントする
chiroruxx
1
390
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
300
Recoilを剥がしている話
kirik
5
6.6k
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
700
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
0
110
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
Building Adaptive Systems
keathley
38
2.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Navigating Team Friction
lara
183
15k
Mobile First: as difficult as doing things right
swwweet
222
9k
Optimizing for Happiness
mojombo
376
70k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Transcript
Copyright 2018 Studyplus, Inc. All Rights Reserved. ٕज़બఆͰࣦഊ͓ͨ͠ͳ͠ Akifumi Tomiyama
/ Studyplus Inc. 2019.4.4 @දࢀಓ.rb#45
ࣗݾհ ࢁথ࢙ Akifumi Tomiyama atomiyama atomiyama_1216 2017.9 Rubyडୗ։ൃ 2018.9 ελσΟϓϥεגࣜձࣾ
For Schoolࣄۀ෦ αʔόʔαΠυΤϯδχΞ ✎ Ruby, Railsྺ 2
4UVEZQMVTGPS4DIPPMɺڭҭػֶ͚ؔशཧαʔϏεͰ͢ɻ ੜెͷʑͷྗΛɺؾ͖ͮɺ๙ΊΔػೳΛଟἧ͍͑ͯ·͢ɻ 4/4ͷΑ͏ͳૢ࡞ײͰɺ୭Ͱ͙͢ʹ͍͡ΊΒΕ·͢ɻ ઌੜ͕ੜెΛ๙ΊΔػձΛ࠷େԽ͢Δɺֶशक़ͷ৽͍͠ελϯμʔυ
APIͷυΩϡϝϯςʔγϣϯͲ͏ͯ͠·͔͢ʁ
swagger2.0Ͱࣦഊͨ͠
ࠓͷ͓ ✎ αʔϏεͷϦχϡʔΞϧͰϑϩϯτΛಠཱͤ͞Δͱ͖ RailsͷAPIαʔόʔԽ ✎ υΩϡϝϯςʔγϣϯʹswagger2.0Λಋೖ͠swagger wayΛ֎ΕͯڧҾʹߦͬͨΒਏ͞ΛੜΜͩ
എܠ Monolithic Rails App SoE (Client App) SoR (Rails API)
✎ SPAʹͯ͠ը໘ભҠΛૣ͍ͨ͘͠ ✎ σβΠφʔ͕ೖͬͨͷͰUIͷ৽ ✎ Ϟμϯͳٕज़Ͱ͔ͬ͜Α͍ͨ͘͠
2018/10ࠒ ✎ swagger2.0 ✎ swagger-blocks ✎ swagger_ui_engine ✎ apivore ࠓ
✎ OpenAPI3.0 ✎ swagger-editor ✎ json_refs ✎ committeeʢ3.0ରԠ͋Γ͕ͱ͏ʣ
swaggerΛॻ͍͓ͯ͘ͱخ͍͜͠ͱ ✎ ϞοΫαʔόʔͭ͘Δͷ؆୯ ✎ ΫϥΠΞϯτ։ൃऀͱͷԆΛ࠷খԽͰ͖Δ ✎ υΩϡϝϯτͱ࣮ͷണʹؾ͚ͮΔ ✎ ςετָ͕͘͢͝ʹͳΔ
swagger2.0ʹͨ͠ཧ༝ ✎ swagger2.0पΓͷgem͕๛ͩͬͨ ✎ ࣌openapi3.0ʹରԠͨ͠ςετπʔϧ͕ͳ͔ͬͨ ✎ controllerͷதʹDSLͰॻ͘ܗ͕Πέ͍ͯΔͱࢥͬͯͨ ✎ ωοτ্Ͱͷใ2.0ͷ΄͏͕ଟ͔ͬͨ
✎ ܕ͕Ұ͔ͭ͠ఆٛͰ͖ͳ͍ ✎ formDataͰෳϑΝΠϧΞοϓϩʔυΛදݱͰ͖ͳ͍ ࣗલͰnullΛ֦ு͢ΔͳͲ…
#
✎ swagger-uiͰεΩʔϚ͕දݱ͞Ε͍ͯͳ͍ ✎ ϥΠϒϥϦ͕֦ு͞ΕͨεΩʔϚΛೝࣝͰ͖ͳͯ͘ਖ਼ ͘͠ςετ͞Εͳ͍ ແཧʹίʔυͰղܾ͠Α͏ͱͨ͠Β
υΩϡϝϯτͱ࣮ʹဃ͕…
OpenAPI3.0ͳΒͰ͖ͨͷʹ…
✎ ܕ͕Ұ͔ͭ͠ఆٛͰ͖ͳ͍ ✎ ෳϑΝΠϧͷྻΛදݱͰ͖ͳ͍ ✎ nullable ✎ requestBody ղܾ
None
͖ͬ͢Γ
υΩϡϝϯτͱ࣮ͷဃ͕͛Δ
ΈΜͳ͋͠Θͤ$
ڭ܇ ✎ ٕज़બఆ৻ॏʹߦ͍·͠ΐ͏ ✎ ༷͕ϥΠϒϥϦ,ϑϨʔϜϫʔΫ͔ΒΈग़ͯ͠͠· ͏Α͏ͳ࣌ίʔυϨϕϧͰղܾ͢Δͷྑ͘ͳ͍ ✎ ຊʹͦͷٕज़Ͱߦͬͯେৎͳͷ͔νʔϜͰٞΛ͠ ͳ͓͢͜ͱ͕େࣄ
Ҏલ՝͍ͬͺ͍͋Δ͚Ͳ ✎ AMSͱswaggerͷ ✎ ymlϑΝΠϧͷཧ ✎ υΩϡϝϯτߋ৽͔Βެ։ɼ։ൃϑϩʔ
ͱΓ͋͑ͣ͠Β͍͚ͬͯͦ͘͏$
We’re Hiring! ΤϯδχΞืूத https://info.studyplus.co.jp/recruit
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠