[Spring-Data-Rest] REST API 자동 생성

728x90
반응형
SMALL

# Spring-Data-Rest

spring-data-rest는 domain model과 repository를 분석해서, 

RESTful API를 제공해준다.

 

Spring Data REST Reference Guide

Spring Data REST presents a default view of the domain model you export. However, sometimes, you may need to alter the view of that model for various reasons. This section covers how to define projections and excerpts to serve up simplified and reduced vie

docs.spring.io

 

 


# 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

 

Spring REST and HAL Browser | Baeldung

Discover how to explore REST APIs using a HAL browser.

www.baeldung.com

 

728x90
반응형
LIST