6. Repository 인터페이스 정의만으로 REST API 제공
Query Method : 메소드 선언으로 검색 API 지원
특징
7. Repository 인터페이스 정의만으로 REST API 제공
Query Method : 메소드 선언으로 검색 API 지원
Projection : 데이터 표현 방식을 다양하게 정의/표현 가능
특징
8. Repository 인터페이스 정의만으로 REST API 제공
Query Method : 메소드 선언으로 검색 API 지원
Projection : 데이터 표현 방식을 다양하게 정의/표현 가능
HATEOAS : MetaData 표현 (Model, Link, Resource)
특징
18. @Controller
@RequestMapping("/boards")
public class BoardController {
@ResponseBody // 생성
@RequestMapping(method = RequestMethod.POST)
public Board post(@RequestBody Board board) {};
@ResponseBody // 조회
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Board get(@PathVariable("id") Long boardId) {};
@ResponseBody // 수정
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
public Board put(@PathVariable("id") Long boardId,
@RequestBody Contents contents) {};
@ResponseBody // 삭제
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public void post(@PathVariable("id") Long boardId) {};
}
Controller
19. @Service
@Transactional
public class BoardService {
public Board new(Board board){}; // 생성
public Board get(Long boardId){}; // 조회
public Board update(Board board){}; // 수정
public void remove(Long boardId){}; // 삭제
}
Service
#38:그러면
제목이 h로 시작하는 게시글 리스트를 검색하는 요구사항이 있다고 가정하고 URL을 만들어보겠습니다.
#39:그러면 /boards/search/starts-title url에
title 파라미터로 h로 URL을 만들어 요청하면
#40:findByContentsTitleStartsWith 메소드는 Title 컬럼을 like 검색 쿼리로 데이터를 조회한 후에 API로 데이터를 표현합니다.
제가 지금까지 구현체를 하나도 만들지 않고 API를 만들었죠?
여기까지가 Spring Data REST에 기본 사용법이였습니다.
#41:그래서 Spring Data REST를 어떻게 어디에 활용할 수 있을지는 조금 뒤에 이야기하기로 하고
라이브 코딩을 하며 사용법을 더 알아보겠습니다.
#42:스프링 캠프는 라이브 코딩까지.
Deep Dive는 추가
Spring Data REST의 아키텍처 설명
#43:스프링 캠프는 라이브 코딩까지.
Deep Dive는 추가
Spring Data REST의 아키텍처 설명
#44:다들 아는 내용
DispatcherServlet == FrontController pattern
ViewResolver는 제외
#57:제가 장점만 써 놓고 단점은 써놓지 않았는데요. 제가 생각했을때 Data REST는 알아야할 기술이 많습니다.
KSUG 큰 일꾼인 박용권님과 이야기 할때 Spring Data REST를 종합 예술이라고 표현했는데요. 사용하기 쉽고 보기엔 좋지만, 이렇게 알아야할 기술이 많다는 뜻입니다.
#60:첫 번째는 의존성이 낮은 도메인에 적합하다고 생각합니다.
예를 들어 커머스 주문 도메인은 상품, 결제, 포인트, 쿠폰 등 다양한 타 도메인에 의존성이 높은 반면 쿠폰이나 포인트는 타 도메인에 의존성이 낮기 때문에 더 적합하다고 생각합니다.
#61:두 번째는 사내 시스템입니다.
Spring Data REST는 data 레이어를 그대로 REST로 표현할 수 있는 기술이라고 말씀드렸는데요.
사내 시스템에서 데이터베이스를 조회하거나 조작해야되는 시스템에 적용해보면 좋을거 같습니다.
그리고 Spring Data REST는 HAL browser라는 REST Client 툴을 디펜던시 추가만으로 제공합니다.
#62:마지막으로 조회만 적용을 해보는건데요.
라이브코딩을 하면서 봤던 ReadOnlyPagingAndSortingRepository를 만들어서 사용하면 될거 같습니다.
#63:마지막으로 조회만 적용을 해보는건데요.
라이브코딩을 하면서 봤던 ReadOnlyPagingAndSortingRepository를 만들어서 사용하면 될거 같습니다.