https://www.inflearn.com/course/spring_rest-api
ㅁ HATEOAS 와 Self-Describtive Message 적용
ㅇ 스프링 HATEOAS 소개 && 스프링 HATEOAS 적용
- 링크 만드는 기능
> Linkto , slash
- 리소스 만드는 기능 : 리소스 : 데이터 + 링크
- 링크 찾아주는 기능
> HREF
> REL
- ResourceSupport(deprecated) -> RepresentationModel 를 통해 link 생성하여 추가함
- Resource(deprecated) -> EntityModel
- @JsonUnwrapped 사용하여 응답값에 객체 혹은 field가 배열로 구성된걸 풀 수 있다.
- add(linkTo(EventController.class).slash(event.getId()).withSelfRel());
> 타입 세이프하고 안전하게 하기 위함
ㅇ 스프링 REST Docs 소개 & 적용 & 조각 생성
- REST API 문서의 조각을 생성하는데 유용한 기능을 제공해주는 Tool (라이브러리)
> 빌드, 실행시 다양한 정보를 문서화 할 수 있다.
-자바 8, 스프링 5 부터 지원
- 스웨거 라는것도 있지만, 테스트 때 생성 문서가 바뀌지 않는 문제가 있음
- prettyprint로 RestDocsConfiguration 생성
- Test쪽에서 @Import로 호출하여 적용
- ResponseFields : 전체 필드에 대해 description 필요
relaxedResponseFields : 전체 필드에 대해서는 필요없고 일부만 작성해도 됨
>> 정확한 문서를 만들지 못함
- links의 description을 정의해줬는데도, responseField를 작성할때 links를 한번 더 테스트해야함
( hal ( hypertext application language) 포맷을 따르기 때문에 response에도 들어가게됨 )
ㅇ 스프링 REST Docs 문서 빌드
- asciidoctor 플러그인의 process-asciidoc을 실행하게 하여, asciidoc의 .adoc 파일을 템플릿으로 사용해서 html로 만들어줌
- maven-resources-plugin을 통해, copy-resource 진행
> static/docs 밑으로 옮겨줌
- prepare-package phase때 진행해야하며, index.html 생성 후, copy하도록 플러그인 순서 맞춰야함
>> 빌드디렉토리 내에서 진행
ㅇ 테스트용 DB와 설정 분리하기 & API 인덱스 만들기
- application.properties가 TEST에도 있을 경우, TEST쪽이 운영쪽을 덮어 씌움
> 테스트 쪽에 필요한 옵션만 넣고, 운영쪽에서 쓸 옵션은 그대로 넘어오게 하자
> 아니면 @ActiveProfiles(value = "test") 를 설정하고, application-test.properties를 생성
- var는 자바 10에 추가되었고, 지역변수에 한해서 타입을 지정하지 않고 var로 쓸 수 있음
- 스프링 부트 2.3으로 올라가면서 Jackson 라이브러리가 더이상 Array부터 만드는걸 허용하지 않음
'Spring' 카테고리의 다른 글
[Spring] 실전! 스프링 데이터 JPA - 1 (0) | 2021.09.02 |
---|---|
[Spring] 스프링 기반 REST API 개발 - 3 (0) | 2021.08.06 |
[Spring] 스프링 기반 REST API 개발 - 1 (0) | 2021.08.03 |
[Spring] 스프링 웹 MVC - 3 (0) | 2021.08.02 |
[Spring] 스프링 웹 MVC - 2 (0) | 2021.07.28 |