Upgrade to Pro — share decks privately, control downloads, hide ads and more …

カート刷新プロジェクトにおけるOpenAPIを活用したコード自動生成の今と明日 / astud...

カート刷新プロジェクトにおけるOpenAPIを活用したコード自動生成の今と明日 / astudy20190419

アスクル社内勉強会で発表した資料です!

Akihito Nakano

April 19, 2019
Tweet

More Decks by Akihito Nakano

Other Decks in Programming

Transcript

  1. ໨࣍ wͳͥίʔυΛࣗಈੜ੒͢Δͷ͔ʁ w0QFO"1* w υΩϡϝϯτϑΥʔϚοτ΍पลπʔϧͷ֓ཁ w εΩʔϚۦಈ։ൃ wΧʔτ࡮৽ϓϩδΣΫτ w 0QFO"1*Λ׆༻ͨ͠ίʔυࣗಈੜ੒

    w 0QFO"1*υΩϡϝϯτΛॻ͚ͩ͘Ͱ࠷௿ݶͷςετ͕ࣗಈతʹ૸Δੈք ίʔυࣗಈੜ੒ͷ׆༻ঢ়گΛ੔ཧ ͨ͠͏͑Ͱɺ0QFO"1*Λ׆༻ͯ͠ ΋ͬͱੜ࢈ੑΛߴΊΔͨΊʹɺ௚ ۙͰ΍Γ͍ͨ͜ͱΛ͓࿩͠·͢ʂ
  2. ໨࣍ wͳͥίʔυΛࣗಈੜ੒͢Δͷ͔ʁ w0QFO"1* w υΩϡϝϯτϑΥʔϚοτ΍पลπʔϧͷ֓ཁ w εΩʔϚۦಈ։ൃ wΧʔτ࡮৽ϓϩδΣΫτ w 0QFO"1*Λ׆༻ͨ͠ίʔυࣗಈੜ੒

    w 0QFO"1*υΩϡϝϯτΛॻ͚ͩ͘Ͱ࠷௿ݶͷςετ͕ࣗಈతʹ૸Δੈք ίʔυࣗಈੜ੒ͷ׆༻ঢ়گΛ੔ཧ ͨ͠͏͑Ͱɺ0QFO"1*Λ׆༻ͯ͠ ΋ͬͱੜ࢈ੑΛߴΊΔͨΊʹɺ௚ ۙͰ΍Γ͍ͨ͜ͱΛ͓࿩͠·͢ʂ
  3. 0QFO"1*पลπʔϧ w 4XBHHFS&EJUPS w 0QFO"1*υΩϡϝϯτ εΩʔϚ ͷهड़Λࢧԉ w IUUQTFEJUPSTXBHHFSJP w

    4XBHHFS6* w "1*࢓༷Λࢹ֮ԽɺΠϯλϥΫςΟϒͳ"1*ૢ࡞ w IUUQTQFUTUPSFTXBHHFSJP w 0QFO"1*(FOFSBUPS w 0QFO"1*υΩϡϝϯτ͔ΒιʔείʔυΛࣗಈੜ੒ w IUUQTPQFOBQJHFOFSBUPSUFDI IUUQTPQFOBQJUPPMT
  4. 0QFO"1*υΩϡϝϯτͷهड़ ࢓༷ͷڞ༗ɾ֬ೝ Swagger Editor Swagger UI ίʔυࣗಈੜ੒ͷԸܙ͸େ͖͍ IUUQTCMPHPOLOJOKBTDIFNB@pSTU@EFWFMPQNFOU API هड़ݴޠҎޙͷੈք

    ελϒੜ੒ػೳΛར༻ͨ͠εΩϟϑΥʔϧσΟϯά ςετίʔυͷࣗಈੜ੒ OpenAPI Generator ੜ੒ͨ͠ελϒΛར༻ͨ͠ฏߦ։ൃ ੜ੒ͨ͠ΫϥΠΞϯτΛར༻ͨ͠޻਺࡟ݮ
  5. ໨࣍ wͳͥίʔυΛࣗಈੜ੒͢Δͷ͔ʁ w0QFO"1* w υΩϡϝϯτϑΥʔϚοτ΍पลπʔϧͷ֓ཁ w εΩʔϚۦಈ։ൃ wΧʔτ࡮৽ϓϩδΣΫτ w 0QFO"1*Λ׆༻ͨ͠ίʔυࣗಈੜ੒

    w 0QFO"1*υΩϡϝϯτΛॻ͚ͩ͘Ͱ࠷௿ݶͷςετ͕ࣗಈతʹ૸Δੈք ίʔυࣗಈੜ੒ͷ׆༻ঢ়گΛ੔ཧ ͨ͠͏͑Ͱɺ0QFO"1*Λ׆༻ͯ͠ ΋ͬͱੜ࢈ੑΛߴΊΔͨΊʹɺ௚ ۙͰ΍Γ͍ͨ͜ͱΛ͓࿩͠·͢ʂ
  6. Χʔτ࡮৽ϓϩδΣΫτͷͬ͘͟Γͨ͠ਤ #'' ഑ૹ ঎඼ Ϣʔβʔ ஫จ "1*ج൫ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY

    ,PUMJO+BWB 4QSJOH#PPU "QBDIF$BNFM 5ZQF4DSJQU +2VFSZ 0QFO"1* 1SPUPDPM#V⒎FST "1*࢓༷ɾεΩʔϚఆٛ
  7. "1*࢓༷ɾεΩʔϚఆٛ ഑ૹ ঎඼ Ϣʔβʔ ஫จ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY ,PUMJO+BWB 4QSJOH#PPU

    "QBDIF$BNFM 5ZQF4DSJQU +2VFSZ 0QFO"1*Λ΋ͱʹͨ͠ίʔυੜ੒ͷ׆༻ঢ়گ "1*ج൫ 0QFO"1* 1SPUPDPM#V⒎FST #'' #''ͰͷϞσϧΫϥεੜ੒ͷΈ
  8. 0QFO"1*υΩϡϝϯτͷهड़ ࢓༷ͷڞ༗ɾ֬ೝ Swagger Editor Swagger UI ίʔυࣗಈੜ੒׆༻ͷ༨஍͸͋Δ IUUQTCMPHPOLOJOKBTDIFNB@pSTU@EFWFMPQNFOU API هड़ݴޠҎޙͷੈք

    ελϒੜ੒ػೳΛར༻ͨ͠εΩϟϑΥʔϧσΟϯά ςετίʔυͷࣗಈੜ੒ OpenAPI Generator ੜ੒ͨ͠ελϒΛར༻ͨ͠ฏߦ։ൃ ੜ੒ͨ͠ΫϥΠΞϯτΛར༻ͨ͠޻਺࡟ݮ
  9. "1*࢓༷ɾεΩʔϚఆٛ ഑ૹ ঎඼ Ϣʔβʔ ஫จ ,PUMJO+BWB 4QSJOH#PPU "QBDIF$BNFM 5ZQF4DSJQU +2VFSZ

    ׆༻ͷ༨஍͸͋Δ"1*ΫϥΠΞϯτ "1*ج൫ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY 0QFO"1* 1SPUPDPM#V⒎FST #'' ίϧʔνϯͰ࢖͍΍͍͢Α͏ʹ 8FC$MJFOUΛಠࣗʹϥοϓͨ͠Ϋϥε Λ࢖͍ͬͯΔͷͰɺ ࣗಈੜ੒ͷ׆༻͸೉͍͔͠΋ "1*ΫϥΠΞϯτͷࣗಈੜ੒
  10. "1*࢓༷ɾεΩʔϚఆٛ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY 5ZQF4DSJQU +2VFSZ ׆༻ͷ༨஍͸͋Δ"1*αʔόʔ #'' ,PUMJO+BWB 4QSJOH#PPU

    "QBDIF$BNFM ഑ૹ ঎඼ Ϣʔβʔ ஫จ "1*ج൫ 0QFO"1* 1SPUPDPM#V⒎FST ελϒੜ੒Λར༻ͨ͠εΩϟϑΥʔϧσΟϯά ࠾༻͍ͯ͠Δٕज़͕ɺ 0QFO"1*(FOFSBUPS͕ੜ੒͢Δ ελϒͷίʔυͱҧ͏ͷͰ࢖͑ͳ͍͔΋
  11. ׆༻ͷ༨஍͸͋Δ΋ͷͷ #'' ഑ૹ ঎඼ Ϣʔβʔ ஫จ "1*ج൫ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY

    ,PUMJO+BWB 4QSJOH#PPU "QBDIF$BNFM 5ZQF4DSJQU +2VFSZ 0QFO"1* 1SPUPDPM#V⒎FST "1*࢓༷ɾεΩʔϚఆٛ ಋೖͷखؒʹݟ߹͏͚ͩͷޮՌ͕ಘΒΕΔ͔Ͳ͏͔ ඍົͳ͜ͱ͕ଟ͔ͬͨ ໨త͸ɺίʔυࣗಈੜ੒ͷ׆༻Ͱ͸ͳ͘։ൃͷੜ࢈ੑΛ্͛Δ͜ͱ ͦ͜Ͱ
  12. 4QSJOH$MPVE$POUSBDU 4$$ w$POTVNFS%SJWFO$POUSBDUT $%$ EFWFMPQNFOU w IUUQXXXTFSWJDFEFTJHOQBUUFSOTDPN8FC4FSWJDF&WPMVUJPO$POTVNFS%SJWFO$POUSBDUT w"1*ར༻ऀ͕ظ଴͢ΔڍಈΛυΩϡϝϯτԽ͢Δ $POUSBDU 

    w"1*ར༻ऀఏڙऀͷ૒ํ͕$POUSBDUΛ΋ͱʹςετΛߦ͏͜ͱͰ඼࣭Λอ ͪͳ͕ΒχʔζΛຬͨ͢։ൃΛߦ͏ w4QSJOH$MPVE$POUSBDU͸$%$ͷ࣮ફΛαϙʔτ͢Δπʔϧ w$POUSBDUͷهड़͸(SPPWZͱ:".-͕࢖͑Δ w$POUSBDU͔Βελϒαʔό΍ςετΛࣗಈੜ੒Ͱ͖Δ IUUQTHJUIVCDPNTQSJOHDMPVETQSJOHDMPVEDPOUSBDU