💭 오늘의 학습 전략
# API 문서화
◼️ 필요성
◼️ Spring Rest Docs vs Swagger
# Spring Rest Docs
◻️ API 문서 생성 흐름
◻️ 기본 설정
◽build.gradle
◽src/docs/asciidoc/index.adoc
◻️ 적용해보기
🌼 학습한 것들
◾ Spring Rest Docs_API 문서 생성 흐름
◾ Spring Rest Docs_설정
▪️ build.gradle
- plugins > asciidoctor 플러그인 추가
- ext > 스니핏 저장 경로 설정
- configurations > asciidoctor에서 사용되는 의존 그룹 지정
- dependencies 추가
- task 별 설정 (기능 사용을 위한 extentions, index.html 복사 경로 등)
- build > 빌드 전 수행될 task 설정
- bootJar > 애플리케이션 실행 파일이 생성하는 :bootJar task 설정
(asciidoctor 실행으로 생성되는 index.html을 jar 파일에 추가 -> 브라우저 확인용)
▪️ API 문서 스니핏을 사용하기 위한 템플릿 생성
- 생성된 스니핏을 최종 API로 만들어주는 템플릿 문서(index.adoc)
▪️ 적용 실습
- @WebMvcTest
- @MockBean(JpaMetamodelMappingContext.class)
: @EnableJpaAuditing -> JPA 관련 Bean(JpaMetamodelMappingContext) 필요 -> WebMvcTest 사용 시 주입
- @AutoConfigureRestDocs
- andDo: 검증 작업이 아닌 일반 동작 정의
- document: API 문서 생성 핵심 메서드
: controller 스펙에 맞춰서 requestFields, responseFields, responseHeaders 등 알맞게 작성
: ignored(), optional() 등 api 스펙 정보에서 제외하거나 옵션값으로도 설정 가능
🔥 보충이 필요한 것들
◾ @EnableJpaAuditing
◾ document 작성 시 쿼리 스트링은?
💨 하루를 마치며
1. Swagger를 쓰면 확실히 애너테이션이 너무 많아서 문서화 애너테이션인지 아닌지 나조차도 헷갈릴 때가 많긴 했는데 컨트롤러 테스트 케이스를 다 작성해줘야 한다니 스웨거가 더 편하게 느껴진다ㅎㅎ;;;
2. 그래도 테스트 코드는 중요하니까...
3. 그래도...
4. 😵💫
'공부기록 > TIL' 카테고리의 다른 글
2023/01/12 TIL | 인증/보안 기초 (0) | 2023.01.12 |
---|---|
2023/01/10 TIL | 빌드/실행/배포 (0) | 2023.01.10 |
2023/01/05 TIL | Mockito, TDD (0) | 2023.01.05 |
2023/01/14 TIL | 테스팅 (2) 슬라이스 테스트 (0) | 2023.01.04 |
2023/01/03 TIL | 테스팅 (1) 단위 테스트 (0) | 2023.01.03 |
댓글