The Design of Web APIsOAS(OpenAPI Specification)์ REST ๋ช ์ธ ํฌ๋งท์ผ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ ํฌ๋งท ์ค ํ๋์ด๋ค.OAS(OpenAPI Specification)๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ข ์๋์ง ์๊ณ ์ฌ์ฉํ๋ REST API ๋ช ์ธ ํฌ๋งท์ด
pom.xml์ Spring Swagger 2.9.2 ๊ด๋ จ Dependency๋ฅผ ์ถ๊ฐํ๊ณ ,SwaggerConfig ๊ด๋ จ Class๋ฅผ ์์ฑํ์ฌ Server ์คํ ์ ์ ์ ๋์ํ์ง๋ง,localhost/swagger-ui.html ๋ก Swagger ๋ฌธ์ ์ ์์ด ์๋๋ ์ํฉ์ด
๋ฌธ์ ์ํฉ Swagger๋ฅผ ์ฌ์ฉํด์ API ๋ฌธ์ ์์ฑ ์ค, @ApiResponse Annotation์ผ๋ก ์๋ต Code ๋ณ Response๋ฅผ ๋ฐ๋ก DTO Class๋ก ๊ด๋ฆฌํ๊ณ ์ถ๋ ์์ค, ์๋์ ๊ฐ์ด ์์ฑํด๋ ์๋ต ๊ฒฐ๊ณผ๊ฐ ๋น๊ฐ์ผ๋ก ์ถ๋ ฅ๋๊ณ ์์๋ค.
์ค๋์ Side Project์ธ DDaJa์ Spring Boot API Server์,์ง๋๋ฒ์ B์ ํจ๊ป ์์ฑํ API ์ค๊ณ URI๋ฅผ ํ ๋๋ก API ๋ฌธ์๋ฅผ Swagger๋ฅผ ํตํด ์์ฑํด๋ณด๋ คํ๋ค.์ฐ๋ฆฌ Project์์ ํ์ํ Resource์์ Collection์ ๊ตฌ๋ถ
Annotations Swagger ์ค์ ์ ๋จผ์ ํ๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ๊ธ์ ๋จผ์ ์ฝ๊ณ ์ค๋ฉด ๋๋ค. Swagger์์ API ์ค๋ช ์ ์ํ Annotation ๋ค์ ์๋์ ์ ๋ฆฌํ๋ค. @ApiOperation = Method ์ค๋ช @ApiOperation์ผ๋ก ํด๋น Control
Swagger Swagger๋ ์๋ฒ๋ก ์์ฒญ๋๋ URL ๋ฆฌ์คํธ๋ฅผ HTMLํ๋ฉด์ผ๋ก ๋ฌธ์ํ ๋ฐ ํ ์คํธ ํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ฉด Swagger๋ API Spec ๋ฌธ์์ด๋ค. API๋ฅผ ์์ ์ด๋ ๊ฐ์ด๋ ๋ฌธ์๋ฅผ ํตํด ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฃผ๊ธฐ์ ์ธ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ