[Spring] 스프링부트로 1분만에 JSON API 로 출력해보기
- Language/Spring
- 2021. 6. 13.
스프링부트(Spring Boot)로 매우 간단히 JSON 구조로 데이터를 출력할 수 있는데 본 포스팅은 프로젝트를 만들고 JSON 구조로 api까지 출력해보는 것을 만들어보고자 한다.
우선 web 형태로 프로젝트를 생성한다. 아래 참고
웹 starter로 프로젝트를 생성하였다면, 다음과 같이 VO(Value Object를 생성한다.
Entity 클래스
package com.tistory.needneo;
public class NewsVO {
private String title;
private String content;
private String category;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
위 Value Object는 제목, 내용, 카테고리를 포함하고 있는 Entity 클래스이다. 값을 담을 객체를 만들었다면, 화면을 출력할 Controller를 만들어본다.
Controller 클래스
package com.tistory.needneo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class NewsController {
@RequestMapping("/")
public @ResponseBody NewsVO show() {
NewsVO vo = new NewsVO();
vo.setTitle("뉴욕증시 안도 랠리···S&P500 이틀째 최고치 마감");
vo.setContent("나스닥 4주연속 상승세·S&P도 3주째 올라\r\n"
+ "존슨앤드존슨 백신 폐기로 1%이상 떨어져\r\n"
+ "맥도날드는 고객정보 유출에도 1%대 상승");
vo.setCategory("STOCK");
return vo;
}
}
NewsController라는 클래스를 생성 후, @Controller로 어노테이션을 생성 하였고, URL에 매핑된 메소드를 생성하였다.
show라는 메소드에는 NewsVO 객체를 생성 후, 각각 값을 세팅한 이후 해당 객체를 return한다. @ResponseBody라는 어노테이션은 키,값 구주로 되어 있다면 결과를 JSON 형태로 return할 수 있게 도와준다.
결과 실행
컨트롤러 클래스까지 모두 만들었다면 위 붉은색 네모박스로 서버를 실행시키며, 서버가 구동되었다면 두번째 붉은색 네모박스인 브라우저를 호출하여 잘 나왔는지 확인한다.
브라우저를 띄워서 결과를 확인해보면 위와 같이 json결과가 잘 출력된 것을 확인해볼 수 있다. @ResponseBody로 이와같이 Entity 클래스를 출력할 수 있지만, 그외 모든 값을 담는 객체도 출력이 가능하다.
Map 객체 실행
이번에는 Map 객체를 만들어서 위와 같은 값을 담고 화면에 출력해보도록 한다.
@RequestMapping("/")
public @ResponseBody Map<String, Object> show() {
Map<String, Object> map = new HashMap<> ();
map.put("title", "뉴욕증시 안도 랠리···S&P500 이틀째 최고치 마감");
map.put("content", "나스닥 4주연속 상승세·S&P도 3주째 올라\r\n"
+ "존슨앤드존슨 백신 폐기로 1%이상 떨어져\r\n"
+ "맥도날드는 고객정보 유출에도 1%대 상승");
map.put("category", "STOCK");
return map;
}
동일한 데이터를 map에 담고 화면에 출력해보도록 한다.
Entity 클래스와 동일한 값으로 출력이 된 것을 확인할 수 있다. 이와같이 @ResponseBody는 결과적으로 객체의 내용을 Rest 구조로 주고 받을 수 있게끔 json 형태(키, 값 구조일 경우)로 변환시켜 준다는 것을 알 수 있다.
여기까지 실행이 되었다면 이제 데이터를 받는 부분을 DAO 객체로 만들어서 DB와 Access하고 비즈니스 로직이 들어가야 될 부분은 Service 객체로 만들면 매우 간단한 Rest 구조의 API를 만들 수 있다.
'Language > Spring' 카테고리의 다른 글
[Springboot] 폼(Form) 전송 및 RequestParam 변수 세팅 (0) | 2021.06.21 |
---|---|
[Springboot] 스프링부트에서 JSP 사용하기 (1) | 2021.06.20 |
[Spring] 스프링부트(Springboot) 프로젝트 구조 설명 (0) | 2021.06.08 |
[Spring] 스프링 부트(Spring boot)로 웹 프로젝트 만들기 (0) | 2021.06.06 |
[Spring] Spring 및 Spring boot용 이클립스 설치 (0) | 2021.06.05 |