Spring Data/Spring Data REST: 11개의 글
| Spring REST Docs Spring REST Docs는 REST API에 대한 정보를 제공하는 Docs를 생성할 수 있는 Spring 진영에서 제공하는 툴입니다. Spring MVC Test 코드 작성시 추가적으로 Docs를 생성하는 코드를 첨가하여 생성할 수 있습니다. REST Docs는 REST 아키텍처의 self-descriptive 규약을 지키기 위해 REST API의 리소스 및 API 명세 그리고 요청과 응답 데이터의 설명까지 포함된 문서를 만들 수 있게 해줍니다. 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | ..
| 스프링 HATEOAS HATEOAS는 Hypermedia As The Engine Of Application State 의 쟉자로 REST 아키텍처의 한 구성요소입니다. 이 HATEOAS를 통해서 어플리케이션의 상태를 전이할 수 있는 메커니즘을 제공할 수 있습니다. 예로 들어, 송금 어플리케이션이 현재 Home 화면을 나타내는 상태에 있다고 생각해 봅시다. 이 Home 화면에는 입금, 출금, 송금 등 다른 화면 혹은 기능, 리소스로 갈 수 있는 링크들이 존재할 것입니다. 이 링크를 통해서 다른 페이지로 가는 것을 다른 상태로 전이한다고 보고 이 링크들에 대한 레퍼런스를 서버 측에서 전송합니다. 그럼으로서 클라이언트가 명시적으로 링크를 작성하지 않고도 서버 측에서 받은 링크의 레퍼런스를 통해 어플리케이..
| Spring REST API 비즈니스 로직 적용 및 JUnitParam을 이용한 테스트 JUnitParam 테스트 라이브러리는 JUnit의 각 Test 메서드에 파라미터를 쓸 수 있게 함으로써 테스트 코드량을 줄이고 유지보수를 쉽게 해주는 유용한 라이브러리입니다. 이 JUnitParam 라이브러리를 이용하여 아래와 같은 비즈니스 로직을 적용한 코드를 작성하도록 하겠습니다. basePrice 와 maxPrice가 모두 0이면 free = true 그 이외에는 free = false location이 null 이거나 문자열의 길이가 0일 때 offline = false 그 외에는 offline = true 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | ..
| Spring REST API Bad Request 처리 및 응답하기 이번 시간에는 서버에서 Bad Request 응답시, 응답 메세지에 Error 정보를 담아서 보내는 법을 알아보겠습니다. 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | +---common | | | | TestDescription.java | | | | ErrorsSerializer.java | | | | | | | \---events | | | Event.java | | ..
| Spring REST API Bad Request 처리 이번 시간은 지난 시간에 이어서 HTTP 요청에 대해 잘못된 입력값이 보내진 경우, 어떻게 처리를 할 것 인지에 대해 알아보겠습니다. 한 경우는 입력값이 없는 상태, 또 하나는 비즈니스 로직에 위배되는 값이 보내왔을 때입니다. 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | +---common | | | | TestDescription.java | | | | | | | \---events..
| Spring REST API 입력값 제한하기 및 Bad Request 처리 REST API를 설계할 시 Client 측에서 잘못된 데이터를 요청하거나 전송할 시 그것을 처리하는 로직을 만들어야 합니다. 여기서는 DTO(Data Transfer Object)와 스프링 부트에서 제공하는 설정 정보를 이용해 손쉽게 해당 로직을 적용할 것입니다. 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | \---events | | | Event.java | |..
| Spring REST API 테스트 클래스 생성 및 201 응답 받기 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | \---events | | | Event.java | | | EventController.java | | | EventRepository.java | | | EventStatus.java | | | | | \---resources | | | application.properties | | | | | +---static | | ..
| 이벤트 도메인 구현 모든 소스 코드는 여기에서 보실 수 있습니다. 프로젝트 구조 +---src | +---main | | +---java | | | \---com | | | \---example | | | \---springrestapi | | | | SpringRestApiApplication.java | | | | | | | \---events | | | Event.java | | | EventStatus.java | | | | | \---resources | | | application.properties | | | | | +---static | | \---templates | \---test | \---java | \---com | \---example | \---springrestapi | ..
| 스프링 REST API 프로젝트 설정 인텔리제이에서 스프링 REST API를 시작하기 위해서는 다음 링크를 참고하여 인텔리제이에서 스프링 부트 프로젝트 설정을 완료해야 합니다. [Spring Framework/Spring boot2] - [Spring Boot #1] 인텔리제이(IntelliJ)로 스프링 부트 프로젝트 시작하기 | 스프링 REST API 프로젝트 구조 프로젝트 구조 \---src +---main | +---java | | \---com | | \---example | | \---springrestapi | | SpringRestApiApplication.java | | | \---resources | | application.properties | | | +---static | \--..
| REST API란 REST API란 REST 아키텍처 스타일을 지키는 API를 말합니다. REST 아키텍처는 클라이언트와 서버간의 독립적인 개발을 진행할 수 있는 아키텍처 스타일입니다. 서버와 클라이언트의 데이터는 HTTP 프로토콜 위에서 데이터를 주고받으며 REST 아키텍처 스타일에서 명시하는 조건을 준수하여 해야 합니다. REST API라는 것은 간단히 생각하면 쉽습니다. 클라이언트와 서버는 따로 분리되며 데이터는 HTTP 프로토콜 위에서 주고받는 아키텍처라 생각하면 됩니다. 여기에 몇 가지 특징을 더한 아키텍처 스타일이 REST API이죠. 서버에서 HTML을 그려서 데이터를 보내는 MVC 아키텍처와는 큰 차이가 있습니다. | RESTful 특징 클라이언트-서버(client-server) 클라이..