728x90
반응형
SMALL
# Spring-Data-Rest
spring-data-rest는 domain model과 repository를 분석해서,
RESTful API를 제공해준다.
# Dependency
hal-explorer
- Hypertext Application Language Browser
- API Reource 관련 하이퍼 링크를 제공한다.
querydsl
- 정적 타입을 이용해서 SQL Query를 생성해주는 Open Source Framework
- querydsl이 생성하는 QClass 생성 위치 설정 필요
- gradle clean 시 QClass Dir 삭제 설정 (옵션)
# Yaml
detection-strategy
- Repository REST API 노출 전략
# Repository
@RestResource
- spring-data-rest의 detection-stratgy을 annotated 설정 (yaml)
- 해당 어노테이션이 붙은 Repository를 탐색하여 REST API 노출
QuerydslPredicateExecutor
- Entity에 해당하는 모든 field를 기준으로 검색 query 자동 생성
QuerydslBinderCustomizer
- QClass를 인자 값으로 받는다
- 기본 검색말고 검색 조건이나 커스텀이 필요한 경우 사용
@Override void customize()
- ArticleRepository가 interface기에 구현을 넣을 수 없다.
- 하지만, Java 8 이후 default method로 구현이 가능해졌기에 default method로 변경
- excludeUnlistedProperties()
- QuerydslPredicatedExecutor로 모든 field 검색이 열려 있다.
- true 설정을 함으로 모든 filed 검색 제외 설정
- includeing()
- 검색할 filed 추가
- bind()
- 검색 field 별로 조건 custom
# HAL Explore
localhost:8080/api
- base-path를 url로 설정하였기에 /api 호출 (yaml)
- 좌측 Links에 repository 별로 HTTP Method API 구현
- '<' == GET 클릭 시 자동으로 페이징 처리까지 되어 API 결과 노출
이 외에도 기본적인 CRUD API 동작이 가능
하지만, 단순한 CRUD 수준이라 복잡함이 요구되는 실무에서는 사용하지 않을 것으로 보임.
그래서 그냥 아~ 이런 게 있구나 정도,, 테스트만 하고 끝
https://www.baeldung.com/spring-rest-hal
728x90
반응형
LIST
'Develope > Spring & Springboot' 카테고리의 다른 글
Spring Cloud Gateway 란? (1) | 2022.06.30 |
---|---|
[Spring] Spring Triangle - DI, AOP, PSA (0) | 2022.06.29 |
[Spring] PSA - Portable Service Abstraction (0) | 2022.06.29 |
[Spring] AOP - Aspect Oriented Programming (0) | 2022.06.28 |
[Spring] Inversion of Control & Dependency Injection (0) | 2022.06.28 |