OpenAPI-generator μ OpenAPI-generator-cli
π μμΈμ½μ‘ : μμλλ©΄ μΈλͺ¨μλ μ½λ© μ‘νμ§μ!
1οΈβ£ μλ‘
νλ‘ νΈμλ μμμμ μΉμ ν리μΌμ΄μ μ κ°λ°νλ€ λ³΄λ©΄ μ’ μ’ λ°±μλ APIμμ ν΅μ μ νμλ‘ ν©λλ€. μ΄λ APIμμ ν΅ν© μμ μ λ§μ μκ°κ³Ό λ Έλ ₯μ μꡬν©λλ€.
νΉν νμ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νκ³ μλ€λ©΄, ν΄μΌν μμ μ΄ ν¨μ¬ λ§μμ§κ² λλλ°μ. λ°±μλλ‘ λ°μ΄ν°λ₯Ό μμ²ν λ μ΄λ ν ννλ‘ λ³΄λ΄μΌν μ§, λ°μ΄ν°λ₯Ό λ°μλ μ΄λ ν ννλ‘ λ°μμ§μ λν μΈν°νμ΄μ€ μ μκ° νμν΄μ§κΈ° λλ¬Έμ λλ€.
μ΄λ¬ν μμ μ λμ± ν¨μ¨μ μΌλ‘ μννκ³ μΌκ΄μ± μλ μ½λλ₯Ό μ μ§νκΈ° μν΄μ OpenAPI Generator λ₯Ό νμ©νλ λ°©λ²μ΄ μμ΅λλ€.
μ§κΈλΆν° OpenAPI Generator κ° λ¬΄μμΈμ§ μμ보λλ‘ νκ² μ΅λλ€.
2οΈβ£ OpenAPI generator
μμ ν¬μ€ν μμ OpenAPI μ OpenAPIλ₯Ό λ§λ OpenAPI Initiativeμ λν΄μ μΈκΈνμ μ΄ μμμ΅λλ€.
OpenAPI Generatorλ OpenAPI Initiative μ μν΄ μμλ νλ‘μ νΈμ€ νλλ‘μ, Javaλ‘ κ°λ°λ λ 립 μ€νν λꡬμ λλ€. μ΄ λꡬλ₯Ό μ¬μ©νλ©΄ λ€μν νλ‘κ·Έλλ° μΈμ΄λ‘ μμ±λ API ν΄λΌμ΄μΈνΈ λΌμ΄λΈλ¬λ¦¬, μλ² μ€μΌλ ν€ μ½λ, λ°μ΄ν° λͺ¨λΈ λ±μ μλμΌλ‘ μμ±ν μ μμ΅λλ€.
OpenAPI Generatorλ 미리 μ μλ GeneratorλΌ λΆλ¦¬λ ν νλ¦Ώκ³Ό μ½λ μμ±κΈ°λ₯Ό μ¬μ©νμ¬ OpenAPI μ€νμ λΆμνκ³ μ½λλ₯Ό μμ±ν©λλ€. μ΄λ κ² μμ±λ μ½λλ κ°λ°μκ° API νΈμΆ ν¨μλ₯Ό μ¬μ©νκ±°λ ꡬνν λ κΈ°λ°μΌλ‘ μ¬μ©λ©λλ€.
Geneartor μ’ λ₯μ λ°λΌ λ€μν output(Java, Kotlin, typescript, etc.)μ λ§λ€ μ μμ΅λλ€.
μΉ νλ‘ νΈ μμλ typescript-axios λ typescript-fetch λ₯Ό μ£Όλ‘ μ¬μ©ν©λλ€
μΉ νλ‘ νΈμλ μμλ μ£Όλ‘ typescript-axios λ typescript-fetch λΌλ generatorλ₯Ό νμ©νκ³ μμ΅λλ€.
κ·Έ μ΄μ λ, μ΄λ₯Ό ν΅ν΄ μλμΌλ‘ μμ±λ API μΈν°νμ΄μ€μ API νΈμΆ ν¨μλ₯Ό ν΅ν΄ λ°±μλμ νλ‘ νΈμλ κ°μ μ£Όκ³ λ°λ λ°μ΄ν°λ€μ νμ μ μ μ§ν μ μκΈ° λλ¬Έμ λλ€.
β μμ½
OpenAPI Generatorλ OpenAPI(Swagger) μ€νμ κΈ°λ°μΌλ‘ API ν΄λΌμ΄μΈνΈλ μλ² μ½λλ₯Ό μλμΌλ‘ μμ±ν΄μ£Όλ λꡬμ λλ€.
3οΈβ£ OpenAPI generator cli
OpenAPI Generator CLI λ OpenAPI Generatorμ λͺ λ Ή ν둬ννΈ μΈν°νμ΄μ€(Command Line Interface μ΄ν CLI) λ²μ μ λλ€. OpenAPI Generator CLIλ₯Ό μ¬μ©νλ©΄ ν°λ―Έλμ΄λ λͺ λ Ή ν둬ννΈμμ CLIλͺ λ Ήμ΄λ₯Ό μ λ ₯νμ¬ OpenAPI generator λ₯Ό μ€νμμΌ μ½λλ₯Ό μμ±νλ κ²μ΄ κ°λ₯ν©λλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ μλ μ½λ μμ± κΈ°λ₯μ μ½κ² μ¬μ©ν μ μμΌλ©°, CI/CD νμ΄νλΌμΈμ΄λ μ€ν¬λ¦½νΈ λ±μμλ μ¬μ©ν μ μμ΅λλ€. OpenAPI Generator CLI λ κ°λ°μλ€μκ² λ ν° μ μ°μ±κ³Ό νΈμμ±μ μ 곡νμ¬ μ½λ μμ± λ° κ΄λ¦¬ μμ μ μλνν μ μκ² ν΄μ€λλ€.
4οΈβ£ What is different?
βκ·Έλμ OpenAPI generator μ OpenAPI generator cli κ° λμ°¨μΈλ°?β λΌκ³ μκ°νμλ λΆλ€μ΄ κ³μ€κ² κ°μ΅λλ€.
μ΄ λμ κ°μ₯ ν° μ°¨μ΄μ μ μμ μ€λͺ λκ²μ²λΌ ν΄λΉ λꡬλ€μ΄ μ¬μ©λλ νκ²½μ μμ΅λλ€. OpenAPI generator λ μλ°λ‘ λ§λ€μ΄μ§ λ 립μ μΌλ‘ μ€νκ°λ₯ν λꡬμ λλ€. μ΄ λλ¬Έμ μΌλΆ Node μ κ°μ κ°λ°νκ²½μμ νμ©μ΄ λΆκ°λ₯νλ€λ λ¨μ μ΄ μμ΅λλ€. νμ§λ§ OpenAPI-generator-cli λ cli λͺ λ Ήμ΄λ₯Ό ν΅ν΄ OpenAPI generator λ₯Ό μ€νμν€λ κ²μ΄ κ°λ₯νκΈ° λλ¬Έμ Node μ κ°μ κ°λ° νκ²½μμλ OpenAPI μ€ν μ ν΅ν μ½λμμ± λ° νμ©μ΄ κ°λ₯ν©λλ€.
μμκ°μ μ΄μ λ‘, μΉ νλ‘ νΈμλμμλ μλμ λͺ λ Ήμ΄λ₯Ό ν΅ν΄ OpenAPI generator cli μ OpenAPI generatorλ₯Ό μ€μΉνμ¬ κ°λ°μ νμ©νκ³ μμ΅λλ€.
π½ OpenAPI generator install
brew install openapi-generator
π½ OpenAPI generator cli install
yarn add -D @openapitools/openapi-generator-cli
5οΈβ£ TMI
μμ ν¬μ€ν μμ OpenAPI λ Swagger μ€ν©μΌλ‘λΆν° νμλμλ€κ³ λ§μμ λλ Έμμ΅λλ€. λλ¬Έμ μ΄λ―Έ λ°±μλμμ Swaggerλ₯Ό μ¬μ©νμ¬ API λ¬Έμλ₯Ό μμ±νκ³ μμλ€λ©΄, Swaggerμ μν΄ μμ±λ OASλ¬ΈμμOpenAPI Generatorλ₯Ό μ΄μ©ν΄ μμ½κ² μ½λλ₯Ό μμ±ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ°±μλμ νλ‘ νΈμλ κ°λ°μλ€μ μ΅μ API μ€νκ³Ό μΌκ΄λ μ½λλ₯Ό μ μ§νλ©΄μ νμ μ μννκ² μ§νν μ μμ΅λλ€.
π μκ³ νΈ
βνλ‘ νΈμλμμ μΉ μ ν리μΌμ΄μ μ λ§λ€λ κ°μ’ μ΅μ λ€μ CLI λͺ λ Ήμ΄λ‘ μ λ¬νμ§ μκ³ OpenAPI generator λ₯Ό λ μ½κ³ μ νμ©νλ λ°©λ²μ΄ μμκΉμ?β
λ€, μμ΅λλ€. μ¬μ§μ΄ λ§€λ² openapi-generator λ₯Ό μ€μΉνμ§ μμλ λλ λ°©λ²μ΄ μμ΅λλ€!
λ°λ‘ κ°μμ£ ! openapitools.json νμ©νΈ!