๋ฐฐ๊ฒฝ
PR #32 ์งํ ์ค FRONTEND.md์ ์ฝ๋ ๊ฐ ๋ช
์ธ ๋ถ์ผ์น๊ฐ ๋ค์ ๋ฐ๊ฒฌ๋จ. ํฅํ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๊ธฐ ์ํด ์ต์
A ์๋ํ โ ์ฝ๋์์ ์๋ ์์ฑํ OpenAPI ์คํ์ ๋ฆฌํฌ ์ปค๋ฐ ๋ฒ์ ๊ณผ CI์์ diff.
ํด์ผ ํ ์ผ
build.gradle.kts โ org.springdoc.openapi-gradle-plugin ์ถ๊ฐ
- springdoc ์์กด์ฑ โ
org.springdoc:springdoc-openapi-starter-webmvc-ui
./gradlew generateOpenApiDocs โ docs/openapi.json ์ฐ์ถ
- GitHub Actions ์ํฌํ๋ก โ
.github/workflows/api-contract-check.yml
./gradlew generateOpenApiDocs
git diff --exit-code docs/openapi.json ์คํจ ์ PR fail
- (์ ํ)
oasdiff action์ผ๋ก breaking change ์ PR์ ์๋ ๋๊ธ
๊ฒ์ฆ
์์กด์ฑ
๋
๋ฆฝ. ์ธํ๋ผ ์์
.
์ํฅ ํ์ผ
build.gradle.kts, capstone-api/build.gradle.kts, .github/workflows/api-contract-check.yml, docs/openapi.json (์ ๊ท)
๋ฐฐ๊ฒฝ
PR #32 ์งํ ์ค FRONTEND.md์ ์ฝ๋ ๊ฐ ๋ช ์ธ ๋ถ์ผ์น๊ฐ ๋ค์ ๋ฐ๊ฒฌ๋จ. ํฅํ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ง๊ธฐ ์ํด ์ต์ A ์๋ํ โ ์ฝ๋์์ ์๋ ์์ฑํ OpenAPI ์คํ์ ๋ฆฌํฌ ์ปค๋ฐ ๋ฒ์ ๊ณผ CI์์ diff.
ํด์ผ ํ ์ผ
build.gradle.ktsโorg.springdoc.openapi-gradle-plugin์ถ๊ฐorg.springdoc:springdoc-openapi-starter-webmvc-ui./gradlew generateOpenApiDocsโdocs/openapi.json์ฐ์ถ.github/workflows/api-contract-check.yml./gradlew generateOpenApiDocsgit diff --exit-code docs/openapi.json์คํจ ์ PR failoasdiffaction์ผ๋ก breaking change ์ PR์ ์๋ ๋๊ธ๊ฒ์ฆ
docs/openapi.jsonํจ๊ป ์ปค๋ฐํ๋ฉด ํต๊ณผ์์กด์ฑ
๋ ๋ฆฝ. ์ธํ๋ผ ์์ .
์ํฅ ํ์ผ
build.gradle.kts,capstone-api/build.gradle.kts,.github/workflows/api-contract-check.yml,docs/openapi.json(์ ๊ท)