분류 전체보기

💐 Spring/Spring REST API

5) [test] 입력값 제한하기 (비즈니스 로직으로 검사) - 스프링 REST API

@Valid 와 BindingResult (또는 Errors) BindingResult 는 항상 @Valid 바로 다음 인자로 사용해야 함 (스프링 MVC) @NotNull, @NotEmpty, @Min, @Max ... 사용해서 입력값 바인딩 할때 에러 확인이 가능하다 도메인 Validator 만들기 Validator 인터페이스 없이 만들어도 상관없다. @Component public class EventValidator { public void validate(EventDto eventDto, Errors errors) { if (eventDto.getBasePrice() > eventDto.getMaxPrice() && eventDto.getMaxPrice() != 0) { errors.reject..

💐 Spring/Spring REST API

4) [test] 입력값 제한하기 (Bad_Request 발생) - 스프링 REST API

테스트 할 것 입력값으로 누가 id나 eventStatus, offline, free 이런 데이터까지 같이 주면? Bad_Request 발생 (이번 테스트!) vs 받기로 한 값 이외는 무시 핵심 코드 ObjectMapper 커스터마이징 spring.jackson.deserialization.fail-on-unknown-properties = true // deserialization : 역직렬화(JSON -> 객체) 를 하는데, unknown-properties가 있으면 -> fail-on 실패를 던진다.application.properties spring.jackson.deserialization.fail-on-unknown-properties=true #왜 deserialization이냐면, (Js..

💐 Spring/Spring REST API

3) [test] 입력값 제한하기 (무시하는 방법) - 스프링 REST API

테스트 할 것 입력값으로 누가 id나 eventStatus, offline, free 이런 데이터까지 같이 주면? Bad_Request 로 응답 vs 받기로 한 값 이외는 무시! (이번 테스트 방법) 입력값 제한 id 또는 입력 받은 데이터로 계산해야 하는 값들은 입력 받지 않아야 한다. EventDTO 적용 DTO -> 도메인 객체로 값 복사 ModelMapper 의존성 추가 org.modelmapper modelmapper 2.3.1 빈으로 등록 @Configuration 아래에 @Bean public ModelMapper modelMapper(){ return new ModelMapper(); }통합 테스트로 전환 @WebMvcTest 빼고 다음 애노테이션 추가 @SpringBootTest @Aut..

💐 Spring/Spring REST API

2) [test] JSON 응답으로 201이 나오는지 확인 - 스프링 REST API

Test 1) JSON 응답으로 201이 나오는지 확인. - Location 헤더에 생성된 이벤트를 조회할 수 있는 URI 담겨 있는지 확인. - id는 DB에 들어갈 때 자동 생성된 값으로 나오는지 확인. 일단 Test 클래스를 만든다 테스트를 할 클래스에서 맥 기준으로 단축키 cmd + shift + T 를 눌러주면 테스트 클래스 생성해준다. Location URI를 만들건데, 여기서는 HATEOAS가 제공하는 linkTo() , methodOn()을 사용할 것 이다. 객체를 JSON으로 변환 할때, ObjectMapper를 사용. EventController 구현 package me.iseunghan.demoinflearnrestapi.events; import org.springframework...

💐 Spring/Spring REST API

1) Spring-Boot 프로젝트 만들기 - 스프링 REST API

의존성 추가 WEB JPA Hateoas H2 Lombok Event 생성 API 구현 : 비즈니스 로직 Event 생성 API package me.iseunghan.demoinflearnrestapi.events; import lombok.*; import javax.persistence.*; import java.time.LocalDateTime; //hashcode에서 of="id"로 준 이유? 연관관계가 있을때 그 관계가 상호참조 관계에서 참조하는 상황에서 스택오버플로우가 발생할수가 있기때문에, id로만 해시코드를 생성한다. //서로간에 메소드를 계속 계속 호출하기 때문에 스택오버플로우가 발생할 수 있다. @Builder @AllArgsConstructor @NoArgsConstructor @Ge..

💐 Spring/Spring MVC, DB 접근 기술

스프링 JdbcTemplate

스프링 JdbcTemplate 리포지토리 생성 설정은 Jdbc 설정과 동일하게 하면 된다. 스프링 Jdbc Data Access Layer 이해 DataSource 란? DB와 관계된 Connection 정보를 담고 있으며, bean으로 등록하여 인자로 넘겨준다. 이 과정을 통해 Spring은 DataSource로 DB와의 연결을 획득한다. DataSource 설정 및 빈 등록방법 application.properties spring.datasource.url=jdbc:h2:tcp://localhost/~/test #url : db의 url을 넣어주면 자동으로 connection이 됨. spring.datasource.driver-class-name=org.h2.Driver #h2를 사용 할 것이기 때문..

iseunghan
'분류 전체보기' 카테고리의 글 목록 (34 Page)