࣍ ͍ΖΜͳ༰͕ࠞͬͨ͟ ࡶଟͳൃදͰ͢ w Θͨ͠ͷ0QFO"1*(FOFSBUPS׆༻ঢ়گ w 0QFO"1*υΩϡϝϯτΛͬͯࠓޙΓ͍ͨ͜ͱ w 4QSJOH$MPVE$POUSBDU0QFO"1* w 0QFO"1*(FOFSBUPSͷ࠷ۙͷτϐοΫΛ͝հ w υΩϡϝϯταΠτ͕Ξοϓσʔτ w )BOEMFCBSTʹରԠ w ΧελϜςϯϓϨʔτΤϯδϯʹରԠ w PQFOBQJTUZMFWBMJEBUPSϦϙδτϦ w ,VCFSOBUFTͷ3&45"1*ΫϥΠΞϯτੜπʔϧͱͯ͠࠾༻͕ਐΜͰ͍Δ w ͓ΘΓʹ
࣍ w Θͨ͠ͷ0QFO"1*(FOFSBUPS׆༻ঢ়گ w 0QFO"1*υΩϡϝϯτΛͬͯࠓޙΓ͍ͨ͜ͱ w 4QSJOH$MPVE$POUSBDU0QFO"1* w 0QFO"1*(FOFSBUPSͷ࠷ۙͷτϐοΫΛ͝հ w υΩϡϝϯταΠτ͕Ξοϓσʔτ w )BOEMFCBSTʹରԠ w ΧελϜςϯϓϨʔτΤϯδϯʹରԠ w PQFOBQJTUZMFWBMJEBUPSϦϙδτϦ w ,VCFSOBUFTͷ3&45"1*ΫϥΠΞϯτੜπʔϧͱͯ͠࠾༻͕ਐΜͰ͍Δ w ͓ΘΓʹ Ұ୴0QFO"1*(FOFSBUPS͔Β ͕ઢ͠·͢
w4QSJOH$MPVE$POUSBDU$%$ ˞ ͷ࣮ફΛαϙʔτ͢Δπʔϧ w"1*ʹظ͢ΔڍಈΛl$POUSBDUzʹهड़͢Δ wˠʮϦΫΤετ999Λ͛ͨΒɺϨεϙϯε:::Λฦ͢ʯ wهड़ͨ͠$POUSBDU͔ΒελϒαʔόςετΛࣗಈੜͰ͖Δ w ˞ $%$$POTVNFS%SJWFO$POUSBDUTEFWFMPQNFOU w IUUQXXXTFSWJDFEFTJHOQBUUFSOTDPN8FC4FSWJDF&WPMVUJPO$POTVNFS%SJWFO$POUSBDUT w "1*ར༻ऀ͕ظ͢ΔڍಈΛυΩϡϝϯτԽ͢Δ $POUSBDU
w "1*ར༻ऀఏڙऀͷํ͕$POUSBDUΛͱʹςετΛߦ͏͜ͱͰ࣭Λอͪͳ͕ΒχʔζΛຬͨ ͢։ൃΛߦ͏ IUUQTHJUIVCDPNTQSJOHDMPVETQSJOHDMPVEDPOUSBDU
࣍ w Θͨ͠ͷ0QFO"1*(FOFSBUPS׆༻ঢ়گ w 0QFO"1*υΩϡϝϯτΛͬͯࠓޙΓ͍ͨ͜ͱ w 4QSJOH$MPVE$POUSBDU0QFO"1* w 0QFO"1*(FOFSBUPSͷ࠷ۙͷτϐοΫΛ͝հ w υΩϡϝϯταΠτ͕Ξοϓσʔτ w )BOEMFCBSTʹରԠ w ΧελϜςϯϓϨʔτΤϯδϯʹରԠ w PQFOBQJTUZMFWBMJEBUPSϦϙδτϦ w ,VCFSOBUFTͷ3&45"1*ΫϥΠΞϯτੜπʔϧͱͯ͠࠾༻͕ਐΜͰ͍Δ w ͓ΘΓʹ 0QFO"1*(FOFSBUPSʹؔ͢Δ ׂͱ࠷ۙͷτϐοΫΛ େখ͍͔ͭ͘͝հ͠·͢
w W͔Βɺैདྷͷ.VTUBDIFʹՃ͑ͯɺ)BOEMFCBSTʹࢼݧతʹରԠ w F FOHJOF ΦϓγϣϯͰςϯϓϨʔτΤϯδϯΛࢦఆ w ·ͩΈࠐΈͷςϯϓϨʔτ.VTUBDIFͰॻ͔Ε͍ͯΔ w ͳͷͰࠓͷॴɺ)BOEMFCBSTͰςϯϓϨʔτΛॻ͖͍ͨ߹ɺࣗલͰδΣωϨʔλΫϥε 9YY$PEFHFOΫϥε Λ࣮͢Δඞཁ͋Γ w δΣωϨʔλΫϥε࣮ʹ͍ͭͯͷυΩϡϝϯτ w IUUQTPQFOBQJHFOFSBUPSUFDIEPDTDVTUPNJ[BUJPODVTUPNHFOFSBUPSBOEUFNQMBUF $ openapi-generator \ generate \ -e handlebars \ -t {Handlebarsͷه๏Ͱॻ͔ΕͨςϯϓϨʔτ} ɹ {লུ}
0QFO"1*5PPMTPQFOBQJTUZMFWBMJEBUPS w 0QFO"1*υΩϡϝϯτͷ-JOUπʔϧ w νʔϜϓϩμΫτಠࣗͷهड़ϧʔϧΛܾΊͯɺݕূΛࣗಈԽͰ͖Δ w ྫPQFSBUJPO*Eඞͣࢦఆ͢Δɺ.PEFMʹඞͣFYBNQMFTΛఆٛ͢ΔɺϓϩύςΟ໊ΩϟϝϧέʔεͰ $ java \ -jar /path/to/openapi-style-validator-cli.jar \ -s openapi.yaml \ # ରͷOpenAPIυΩϡϝϯτ -o options.json # όϦσʔγϣϯͷϧʔϧΛఆٛͨ͠JSONϑΝΠϧ *ERROR* in Model 'Pet', property 'status', field 'example' -> This field should be present and not empty $ echo $status 1 IUUQTHJUIVCDPN0QFO"1*5PPMTPQFOBQJTUZMFWBMJEBUPS FYBNQMF͕ ະఆٛʹͳ͍ͬͯΔͷΛ ࢦఠͯ͘͠Ε͍ͯΔ
,VCFSOBUFTͷ3&45"1*ΫϥΠΞϯτੜπʔϧͱͯ͠࠾༻ w 4XBHHFS$PEFHFO͕ΘΕ͍͕ͯͨɺ4XBHHFS$PEFHFO ͷ։ൃ͕͋·Γ׆ൃͰͳ͍ͨΊʹɺੜޙͷίʔυʹಠࣗ ʹύονΛͯͯӡ༻͍ͯͯ͠ϝϯςφϯε͕ਏ͍ঢ়ଶͩͬ ͨ w ҠߦࡁΈ w $ɺ)BTLFMMɺ+BWBɺ1FSMɺ1ZUIPOɺ5ZQF4DSJQU w Ҡߦத w (Pɺ3VCZ IUUQTHJUIVCDPNLVCFSOFUFTDMJFOUHFOJTTVFT
ҰํͰʜɺ w ͨͱ͑ίΞνʔϜͷϝϯόʔͰɺશ͘Βͳ͍ݴޠͷϝϯςφϯεݫ͍͠ʜ w 0QFO"1*(FOFSBUPS͕αϙʔτ͍ͯ͠ΔݴޠҎ্ ʢཹͯ͠͠·͏JTTVFʣ w ʮ0QFO"1*(FOFSBUPSίί͕Πέͯͳ͍ΜͩΑͳ͊ʯ w ʮͪΐͬͱ044ͷ։ൃͬͯΈ͍ͨͳʯ w ʮϓϧϦΫग़͢ͷϋʔυϧߴ͍ͳ͊ɺ͍ͯ͏͔ӳޠͩ͠ʜʯ ؾܰʹֻ͓͚͍ͩ͘͞ʂαϙʔτ͠·͢✨