Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Tags
more
Archives
Today
Total
관리 메뉴

여우비오냐의 IT 기술

Rest 및 Json Annotation 본문

Spring Boot 문법

Rest 및 Json Annotation

여우비오냐 2024. 4. 4. 22:02

[ 1. REST를 사용하는 이유 2가지 ]

1.

 

내가 만든 애플리케이션에서 다른 플렛폼들이 어떻게 데이터를 받아올 수 있을까?

 

REST형 웹 서비스를 사용하여 데이터(ex 특정 객체)에 XML,JSON 같은 모두가 약속한   

    정보로 데이터를 올리자

 

2. 대부분의 사람이 어떠한 데이터를 원하는 이유가 무엇일까?

 

=> 그 데이터를 생성(Create)하거나 읽거나(Read) 수정(Update)하거나 삭제(Delete)하기 위해서!

 

이것을 CRUD Operation 이라 한다. 

그래서 REST방식으로 올린 데이터를 URL로 매핑해주어서 다른 사람들이 쉽고 자유롭게 CRUD Operation 을 수행할 수 있게 해주는 것을 RESTful API 설계라고 한다.

 

 

[JSON으로 데이터 발행]

Controller에 @ResponseBody를 붙이면 된다.

** Json과 XML 모두 Model의 Getter 메소드, Setter 메소드 통해 객체 property 값을 받아 온다. 따라서 Getter 메소드의 선언은 필수다.

 

 

 jakson 어노테이션을 사용하면 다양한 기능을 한번에 적용가능하다. 

예를 들어 Getter 메소드가 아닌 맴버 변수명으로 데이터를 표현하고 싶다면?

 

 

[Json Annotation]

@JsonAutoDetect 를 이용해서 Jackson의 매핑 법칙을 다양하게 바꿀 수 있다.

Getter와 멤버변수 모두를 이용해서 데이터를 발행한다.  만약 Getter 메소드가 있는 멤버변수라면 멤버변수명을 사용한다.

 

@JsonIgnore 를 통해 Getter 메소드를 제외하거나, JsonAutoDetect의 속성 값을 통해 모든 Getter 메소드를 무시할 수도 있다.

 

 

 

[ PathVariable ]

➤ REST는 URL의 엔드포인트(마지막 경로)에 매개변수를 넣어 특정 데이터만을 받아올 수 있다.

 

 

[ ResponseEntity ]

엔드포인트로 특정 인스턴스만을 조회하는 결과는 올바른 정보를 반환하든지, 

  무엇도 반환하지 않든지 둘 중 하나이다. 

 

이때, 정상 작동한다면 HTTP 응답 코드 200, 리소스가 없다면 응답코드 404를 반환해주는게 이치다.

따라서 반환해주는 방법을 살펴보면