💨What [restDocs와 Swagger란 무엇인감]RestDocsSwaggerSpring 진영의 문서화 프레임워크✅How [어떻게 사용해야 하는감]Swagger 3.0 issue❓Why [왜 사용해야 하는감]📌 REFERRestDocsSwagger
💨What [restDocs와 Swagger란 무엇인감]
- RestDocs와 Swagger는 자동으로 API 문서를 작상할 수 있게 해주는 라이브러리 이다.
- “API 문서” 를 제공하는 방식의 양대 산맥이다.
RestDocs
테스트 코드 기반으로 자동으로 API 문서
를 작성해줌.
- TEXT로 명세된 API 설명
동작원리

- Test Case를 수행하면 산출물이 .adoc 파일로 /build/generate-snippets 디렉토리에 생성됩니다.
(default path)
- /src/docs/asciidoc 디렉토리에 /build/generate-snippets에 있는 adoc 파일을 include하여 문서를 생성할 수 있습니다.
- /build/generate-snippets/*.adoc 파일들은 API Request, Response에 대한 명세들만 있는 파일이고
- /src/docs/asciidoc/*.adoc 파일들이 실제 사용자에게 html파일로 변환되어 제공되는 API 문서 파일입니다.
- 따라서 /src/docs/asciidoc/*.adoc 에 API 문서를 작성하고,필요한 API Request, Response Spec은 자동 생성된 /build/generate-snippets/*.adoc 파일들을 이용해 표현해줍니다.
- 이렇게 하면 향후 API Spec이 변경되더라도, 문서를 수정하지 않아도 되는 장점이 있습니다.
- 이렇게 생성된 asciidoc 문서는 AsciidoctorTask를 통해 html 문서로 processing 되어 /build/asciidoc/html5 하위에 html문서로 생성됩니다.
- html 문서가 생성되는 기준은 /src/docs/asciidoc/*.adoc 파일을 기준으로 생성됩니다
Swagger
어노테이션을 이용하여 API 문서를 작성
해줌.
- TEXT + 호출할 수 있는 UI 제공
Spring 진영의 문서화 프레임워크
ㅤ | Spring Rest Docs | Swagger |
장점 | 제품 코드에 영향이 없다. | API 테스트 화면을 제공한다 |
ㅤ | 테스트와 함께 쓰일 수 있다. | 적용하기 용이하다 (애노테이션 기반) |
ㅤ | ㅤ | ㅤ |
단점 | 적용하기 어렵다 | 제품코드에 어노테이션 추가해야 한다. |
ㅤ | ㅤ | 제품코드와 동기화가 안될 수 있다. |
✅How [어떻게 사용해야 하는감]
- swagger 직접 보여주기
Swagger 3.0 issue
- 주의 사항 2.0과 다르게 url 접속 엔드포인트가 달라짐
- yml property add
[3.0에서 반드시 필수적인 !]
❓Why [왜 사용해야 하는감]
API Spec이 변경되거나 추가/삭제 되는 부분에 대해 항상 테스트 코드를 수정하여야 하며, API 문서가 최신화 될 수 있도록 해줍니다.