Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- rest api
- Application Argument
- Application Event
- 스프링부트
- WebApplication Type
- AuthenticationPrincipal
- @ConfigurationProperties
- webjar
- HATEOAS
- 리소스 서버
- 리소스핸들러
- application.properties
- HttpMessageConverters
- cors
- JPA
- JsonSerializer
- @Profile
- Spring Security
- EnableAutoConfiguration
- OAuth2
- 알고리즘
- 정적 리소스
- Application Runner
- 백트래킹
- 다익스트라
- 백준
- 스프링 부트
- 브루트포스
- 백기선
- 외부설정
Archives
- Today
- Total
아카이브
[스프링 기반 REST API 개발] 입력 받을 수 없는 값의 경우 Bad Request 본문
입력받을 수 없는 값들이 넘어왔을 경우 Bad Request를 응답한다.
ObjectMapper 설정하기
- serialize : Object -> JSON
-deSerialize : JSON -> Object
JSON -> Object 변환 시 unknown properties(입력받을 수 없는 값) 일 경우 오류가 발생하는데, 이를 무시하기 위해
application-properties에 spring.jackson.deserialization.fail-on-unknown-properties=true를= 통해 무시한다.
name, number를 받을 수 있는 경우에 size(unknown)을 넘길 경우, 이를 무시하고 deserialize를 진행한다.
@DisplayName("입력받을 수 없는 값을 사용한 경우에 에러가 발생하는 테스트")
@Test
@DisplayName("입력 받을 수 없는 값을 사용한 경우에 에러가 발생하는 테스트")
void createEvent_Bad_Request() throws Exception {
Event event = Event.builder()
.name("Spring")
.description("REST API dev with Spring")
.beginEnrollmentDateTime(LocalDateTime.of(2020, 12, 25, 12, 12))
.closeEnrollmentDateTime(LocalDateTime.of(2020, 12, 26, 12, 12))
.beginEventDateTime(LocalDateTime.of(2020, 12, 27, 12, 12))
.endEventDateTime(LocalDateTime.of(2020, 12, 28, 12, 12))
.basePrice(100)
.maxPrice(200)
.limitOfEnrollment(1000)
.location("D2 Factory")
/* EventDto에 없는 field를 넘겨줄때 ? 400 bad_request 가 더 엄격한 처리 */
.free(true)
.offline(false)
.eventStatus(EventStatus.PUBLISHED)
.id(100)
.build();
this.mockMvc.perform(post("/api/events/")
.header(HttpHeaders.AUTHORIZATION, getBearerToken(true))
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaTypes.HAL_JSON)
.content(objectMapper.writeValueAsString(event))
)
.andDo(print())
.andExpect(status().isBadRequest())
;
}
'Spring > 스프링 기반 REST API 개발' 카테고리의 다른 글
[스프링 기반 REST API 개발] Spring REST Docs 소개, 자동 설정 및 커스터마이징 (0) | 2021.01.06 |
---|---|
[스프링 기반 REST API 개발] Spring HATEOAS 적용 (0) | 2021.01.06 |
[스프링 기반 REST API 개발] 테스트코드 리팩토링 - 파라미터 테스트 (junit-jupiter-params) (0) | 2021.01.05 |
[스프링 기반 REST API 개발] Bad Request 응답 본문 (Errors, JsonSerializer & @JsonComponent, BindingError&Validator ) (0) | 2021.01.05 |
[스프링 기반 REST API 개발] Event 생성 API, 테스트 코드 (0) | 2021.01.05 |