2023.01.06.FRI

ronglong·2023년 1월 6일
0

[Spring MVC] API 문서화

  • API 문서 : REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보 문서. 서버 측에서 클라이언트 측에 제공
  • API 문서화 방식 : Spring Rest Docs(테스트 기반) / Swagger(애너테이션 기반)

[Spring Rest Docs]

  • build.gradle 설정이 좀 복잡함.
  • @WebMvcTest를 사용하며, 테스트 클래스에 필요한 것만 @MockBean으로 만듦
    -> Mock 객체로 모든 의존성을 제거해야 함.
    -> Controller slice test에 주로 쓰임
  • 테스트 통과 못하면 문서 안 만들어짐.
  • 테스트 코드 작성을 통해 검증 후, 문서화 코드 덧붙여서 문서 만들기
    -> 테스트 실행해서 성공하면 스니핏(문서 조각) 생성됨
    -> 폴더 경로 만들고, index.adoc 템플릿 문서 만들기 by Asciidoctor(마크업 언어)
    -> build or bootjar task 실행하면 여러 스니핏이 모여 하나의 문서 완성
    -> 애플리케이션 실행 후 http://localhost:8080/docs/index.html 로 확인
  • Asciidoctor 사용법
    https://narusas.github.io/2018/03/21/Asciidoc-basic.html
//컨텐츠 실습 내용

//검증 후 문서화 메서드
.andDo(document(식별자, 
getRequestPreProcessor(), getResponsePreProcessor(), 
requestFields(), responseFields() 등); 

//body fields ex
fieldWithPath("memberId").type(JsonFieldType.NUMBER).description("회원 식별자").ignored(),
fieldWithPath("phone").type(JsonFieldType.STRING).description("휴대폰 번호").optional(),

fieldWithPath("data").type(JsonFieldType.OBJECT).description("결과 데이터")
fieldWithPath("data.email").type(JsonFieldType.STRING).description("이메일")

//index.adoc
.curl-request
include::{snippets}/post-member/curl-request.adoc[]

[기타]

<느낀 점>
금요일이라 그런지 마음이 아침부터 너무 붕뜬다..ㅎ
그래도 이번 주는 새해 버프로, 평일 월화수목 4일 내내 저녁 8~11시에 3시간씩 자습했다.
자습 퀄리티는 장담하지 못하지만, 일단 앉아있는 습관을 들이려고 노력한 것에 칭찬함..

원래라면 오늘도 저녁에 앉아있어야 하겠지만,, 마음 떴음ㅎㅎ
대신에 일요일 저녁에 조금 앉아있어볼 생각이다.

일요일 저녁에 공부한다면, 공부할 것은 다음과 같다.

  • JPA 강의 듣기, JPA 과제 제출
  • API 과제 혼자서 미리 해보기

0개의 댓글