일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javascript
- spring boot CRUD
- Spring
- spring 설정 파일
- Spring REST API
- javascript class
- spring 에러
- spring boot rest api
- 인텔리제이
- spring boot post api
- pom.xml
- javascript 클래스
- 스프링
- Oracle
- exceptiontransfer
- Spring boot
- spring boot error
- 자바스크립트
- 전자정부 샘플
- 자바스크립트 class
- REST API
- 스프링 에러
- 메이븐
- egov
- 오라클
- 자바스크립트 클래스
- Intellij
- 전자정부프레임워크
- 디자인 패턴
- 스프링부트 post api
- Today
- Total
빵구의 개발 메꾸기
스프링 부트(Spring Boot)를 활용한 RESPONSE 내보내기 본문
스프링 부트(Spring Boot)를 활용하여 HEADERS의 content-type 별 RESPONSE를 내보내는 방법에 대해 알아보자.
@RestController는 해당 class가 RestAPI를 처리하는 Controller로 등록하겠다는 의미에서 사용된다.
request가 들어오면 object mapper를 통해 object로 바뀌고 해당 메서드를 타고 response로 나갈때 object를
던지게 되면 object mapper를 통해 json으로 바뀐다.
<TEXT로 내보내는 경우>
① 카멜 케이스(Camel Case)인 footSize property에 대해 @JsonProperty("foot_size") 스네이크 케이스(Snake Case)로
설정해주게 되면 API 요청 시 보내는 JSON 데이터의 key 값이 foot_size로 들어와도 footSize로 매핑이 된다.
② @GetMapping에 path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.
③ 요청을 보내는쪽에서 ? 뒤의 쿼리 파라미터에 대한 데이터를 대해 받기 위해서 @RequestParam를 넣고 타입 뒤에
있는 변수명에는 API 요청 시 쿼리 파라미터에 작성한 key=value에서의 key와 일치해야 한다.
④ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/text-response-method?
userName=bkjo를 셋팅한다.
⑤ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑥ return 받은 값을 보면 정상적으로 userName 값이 Body에 담긴 것을 확인할 수 있다.
⑦ Headers의 Content-Type을 보면 text/plain;charset=UTF-8로 담긴 것을 확인할 수 있다.
<JSON으로 내보내는 경우>
① 카멜 케이스(Camel Case)인 footSize property에 대해 @JsonProperty("foot_size") 스네이크 케이스(Snake Case)로
설정해주게 되면 API 요청 시 보내는 JSON 데이터의 key 값이 foot_size로 들어와도 footSize로 매핑이 된다.
② @PostMapping에 path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.
③ REST API 요청 시 body에 담겨 들어오는 데이터들을 받기 위해 메서드의 파라미터 정보에 대해서 @RequestBody를
넣고 타입은 User로 설정한다.
④ POST로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/json-response-method를 셋팅한다.
⑤ 데이터를 작성하기 위해 Body를 클릭한다.
⑥ raw를 클릭하고 JSON으로 셋팅한다.
⑦ JSON 형식의 보낼 데이터를 작성한다.
⑧ Send 버튼을 클릭하여 POST REST API를 호출한다.
⑨ return 받은 값을 보면 정상적으로 Body에 담긴 것을 확인할 수 있다.
⑩ Headers의 Content-Type을 보면 application/json으로 담긴 것을 확인할 수 있다.
<JSON으로 내보내는 경우(상태코드 포함)>
① 카멜 케이스(Camel Case)인 footSize property에 대해 @JsonProperty("foot_size") 스네이크 케이스(Snake Case)로
설정해주게 되면 API 요청 시 보내는 JSON 데이터의 key 값이 foot_size로 들어와도 footSize로 매핑이 된다.
② @PutMapping에 path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.
③ REST API 요청 시 body에 담겨 들어오는 데이터들을 받기 위해 메서드의 파라미터 정보에 대해서 @RequestBody를
넣고 타입은 User로 설정한다.
④ PUT으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/response-entity-method를 셋팅한다.
⑤ 데이터를 작성하기 위해 Body를 클릭한다.
⑥ raw를 클릭하고 JSON으로 셋팅한다.
⑦ JSON 형식의 보낼 데이터를 작성한다.
⑧ Send 버튼을 클릭하여 PUT REST API를 호출한다.
⑨ return 받은 값을 보면 정상적으로 Body에 담긴 것을 확인할 수 있다.
⑩ 내보내준 Created에 대한 201 HTTP 상태코드와 Headers의 Content-Type을 보면 application/json으로 담긴 것을
확인할 수 있다.
<HTML로 내보내는 경우>
① HTML로 내보내기 위해 resources/static 하위에 html파일을 생성한다.
② 생성한 html에 대해 URL로 접속 시 화면이 잘 출력되는지 확인한다.
③ API 요청 시 들어오는 URL을 받기 위해 화면과 연결 된 페이지 컨트롤러에서 @RequestMapping에
path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.
④ response로 내보내줄 test.html 파일을 잡아준다.
⑤ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/html-method를 셋팅한다.
⑥ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑦ return 받은 값을 보면 정상적으로 Body에 담긴 것을 확인할 수 있다.
⑧ Headers의 Content-Type을 보면 text/html로 담긴 것을 확인할 수 있다.
<@JsonNaming 활용 방법>
① class위에 @JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)를 설정해주게 되면
VO의 모든 property들이 카멜 케이스(Camel Case)이고 API 요청 시 보내는 JSON 데이터의 key 값이 스네이크
케이스(Snake Case)로 들어와도 매핑이 된다.
② @RestController가 있는 경우에는 상관이 없지만 화면과 연결 된 @Controller를 사용하는 경우 메서드에
@ResponseBody를 통해서 object를 json으로 내보내준다.
API 요청 시 들어오는 URL을 받기 위해 화면과 연결 된 페이지 컨트롤러에서 @RequestMapping에
path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/user-method를 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ return 받은 값을 보면 정상적으로 Body에 담긴 것을 확인할 수 있으나 null인 property에 대해서도 담긴 것을
확인할 수 있다. (null은 제외하고 response를 내보내고 싶은 경우는 하단의 @JsonInclude 활용 방법을 참고)
<@JsonInclude 활용 방법>
① class위에 @JsonInclude(JsonInclude.Include.NON_NULL)을 설정해주게 되면 VO의 모든 property들에 대해서
null이 존재하는 경우 null은 제외하고 response로 내보내준다.
② @RestController가 있는 경우에는 상관이 없지만 화면과 연결 된 @Controller를 사용하는 경우 메서드에
@ResponseBody를 통해서 object를 json으로 내보내준다.
API 요청 시 들어오는 URL을 받기 위해 화면과 연결 된 페이지 컨트롤러에서 @RequestMapping에
path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.
③ GET으로 설정한 뒤 요청을 보낼 URL인 localhost:8080/user-method를 셋팅한다.
④ Send 버튼을 클릭하여 GET REST API를 호출한다.
⑤ return 받은 값을 보면 정상적으로 Body에 담긴 것을 확인할 수 있으나 null인 property는 제외하고 담긴 것을
확인할 수 있다.
'BACK-END > SPRING BOOT' 카테고리의 다른 글
스프링 부트(Spring Boot) HttpMessageNotReadableException 에러 해결 (0) | 2022.05.12 |
---|---|
스프링 부트(Spring Boot) HttpMediaTypeNotSupportedException 에러 해결 (0) | 2022.05.12 |
스프링 부트(Spring Boot)를 활용한 DELETE REST API 구현 (0) | 2022.05.11 |
스프링 부트(Spring Boot)를 활용한 PUT REST API 구현 (0) | 2022.05.11 |
스프링 부트(Spring Boot)를 활용한 POST REST API 구현 (0) | 2022.05.08 |