Tags
- Docker
- with jdk
- fontawesome
- Spring Cloud
- OneToMany
- restcontroller
- EntityGraph
- 라즈베리파이
- java
- openapispec
- 라즈베리파이 클러스터
- kotlin
- restdocs
- 무료 아이콘 폰트
- 리믹스아이콘
- remix icon
- 도커
- 폰트어썸
- 옵저버패턴
- Openjdk
- Observer Pattern
- oraclejdk
- 전략패턴
- springboot
- java_to_kotlin
- arc browser
- spring cloud contract
- Spring
- 디자인패턴
- QueryDSL
Archives
- Today
- Total
< Dev-Kidult />
Springboot API 문서 자동화 본문
swagger vs rest docs
spring에서 api를 문서화 할 때 제일 많이 쓰는 라이브러리다.
먼저 swagger는 ui에서 직접 api를 테스트 해볼수도 있고 rest docs와 비교해서 ui가 이쁘다.
하지만 단점도 확실하다.
- 어노테이션을 통해 명세를 하게 되는데 지속적으로 사용하게 된다면 명세를 위한 코드가 많이 붙게되어서 전체적으로 가독성이 떨어진다.
- 테스트기반이 아니기에 100% 신뢰 할 수 없는 문서이다.
- 오류케이스에 대해서는 문서화하기가 까다롭다.
반면에 rest docs를 사용하면 위 단점들을 커버할 수 있지만. swagger의 장점은 포기하게 된다.
- 테스트 코드 기반으로 작성되어서 swagger대비 많은 신뢰성을 확보 할 수 있다.
- 테스트 코드 기반이기때문에 비지니스로직의 가독성에 영향을 끼치지 않는다.
- ui에서 테스트는 불가능하다.
각각의 장점과 단점이 명확한데 우리는 그럼 뭘 써야 할까.
다행히도 각각의 장점만 뽑아서 우리의 고민을 해결해줄 그런 라이브러리가 하나 있다.
GitHub - ePages-de/restdocs-api-spec: Adds API specification support to Spring REST Docs
spring rest docs 기반으로 만들어진 테스트코드를 json이나 yaml로 뽑아서 swagger-ui에 붙이는 방식처럼 보이는데 적용 케이스들을 보니 잘만하면 해당 프로젝트에 접근하여 그 해당 프로젝트 API 문서만 볼 수 있는게 아니라 하나의 공간에서 우리 회사 프로젝트 API 문서들을 통합으로 관리를 할 수 있을 것도 같다.
(ps. 프로젝트별 스페이스를 나누어서 볼 수 있는지는 아직 모르겠다.)
(ps. 다른 회사는 MSA별 API 문서를 모아서 볼 수 있도록 관리를 하고 있더라…)
반응형
'개발 > Back-end' 카테고리의 다른 글
Java to Kotlin - 4. 코틀린 표준 라이브러리 (0) | 2022.12.28 |
---|---|
Java to Kotlin - 3. 클래스와 함수 (0) | 2022.12.28 |
Java to Kotlin - 2. 조건문과 반복문 (0) | 2022.12.28 |
Java to Kotlin - 1. 코틀린의 타입 시스템 (0) | 2022.12.28 |
Java to kotlin - 0. kotlin? (0) | 2022.12.28 |
Comments