@JsonView 정의 public class View { public static class Consumer { } public static class Repository { } } @JsonView의 장점은 동일한 POJO 오브젝트에 대해서 선택적으로 서로 다른 프라퍼티가 조합된 JSON 문자열을 만들 수 있다는데 있다. 예를 들어 user라는 POJO 오브젝트가 있다고 가정할 경우 password_encrypted 프라퍼티는 API 사용자에게 노출되지 않아야 하지만 저장소에는 반드시 저장되어야할 데이터이다. 이런 서로 다른 상황을 위해 선택적으로 뷰를 적용할 수 있는 것이 바로 @JsonView이다.위는 API 클라이언트에게 응답할 목적의 Consumer라는 뷰와, 저장소에 저장할 목적의 Repos..
목표 아래와 같이 REST API 오류 응답시 클라이언트가 이해할 수 있는 충분한 정보를 제공한다. HTTP/1.1 401 Unauthorized Content-Type: application/json { "error_code":"INVALID_CLIENT_ID", "error_message":"The requested client identifier is invalid.", "error_data":{ "client_id":"x9LHxnqkFp9vcEfUlsCtBG" } } ExceptionData 설계 package com.jsonobject.example.api.domain; import lombok.Data; import lombok.NoArgsConstructor; import java.util...
개요 Spring Framework 3.2부터 @ControllerAdvice가 소개되었다. 이를 통해 우리는 특정 컨트롤러에 종속되지 않은 전역 범위에서 발생하는 특정 예외에 대한 처리를 한 곳에서 작성할 수 있게 되었다. 본 글에서는 이 방법을 설명하고자 한다. 목표 특정 컨트롤러에 종속되지 않은 전역 예외 처리 로직을 작성한다. 사전 지식 IntelliJ IDEA에서 Spring Boot 웹 프로젝트 생성하기 특정 예외를 처리하는 ExceptionHandler 작성 @ControllerAdvice @Order(Ordered.HIGHEST_PRECEDENCE) public class SomeExceptionHandler { @ExceptionHandler(SomeException.class) @Res..
기능 POST /oauth/check_token 요청은 클라이언트가 요청한 access_token 파라메터가 유효한지 확인하고 access_token이 참조하는 상세 정보를 응답한다. 실행조건 클라이언트는 POST /oauth/token 요청으로 access_token 값을 발급 받은 상태이어야 한다. 요청사양 curl -X POST \ 'http://localhost:8080/oauth/check_token' \ -d 'token=a1849c64-2ca6-4d32-8f15-6cf01029dfb6' 실행순서 1: CharacterEncodingFilter.doFilter() 2: HiddenHttpMethodFilter.doFilter() 3: HttpPutFormContentFilter.doFilter..
- Total
- Today
- Yesterday
- spring
- jstl
- 로드 바이크
- Tomcat
- 구동계
- chrome
- Docker
- JHipster
- 평속
- node.js
- kotlin
- Spring MVC 3
- maven
- 알뜰폰
- DynamoDB
- java
- Eclipse
- 자전거
- Spring Boot
- Kendo UI
- graylog
- 로드바이크
- jsp
- MySQL
- JavaScript
- 태그를 입력해 주세요.
- jpa
- bootstrap
- Kendo UI Web Grid
- CentOS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |