memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

1. dependency 추가

REST API 기능을 만들기 위해서는 spring-boot-starter-web 디펜던시가 필요하다.

pom.xml에 아래 코드를 추가한다.

<html />
<dependencies> ... <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ... </dependencies>

 

참고.

mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web

 

Maven Repository: org.springframework.boot » spring-boot-starter-web

Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container VersionRepositoryUsagesDate2.3.x2.3.4.RELEASECentral677Sep, 20202.3.3.RELEASECentral548Aug, 20202.3.2.RELEASECentral222Jul, 20202.3.1.

mvnrepository.com

2. REST API 만들기

controller/HelloController.java 파일을 생성한다.

 

2.1. 문자열 데이터 반환

@GetMapping을 이용하여 HTTP GET Methodapi/welcome 경로로 요청이 들어오면, Welcome을 반환한다.

<java />
@Controller public class HelloController { /** * Welcome을 반환한다. * @return Welcome */ @GetMapping("api/welcome") @ResponseBody public String apiWelcome() { return "Welcome"; } }

문자열 반환

 

2.2. JSON 형식의 데이터 반환

Map으로 반환하면, JSON으로 변환하여 반환하다.

@GetMapping을 사용했기 때문에, HTTP GET Method로 요청이 들어왔을때 이루어진다.

<java />
@Controller public class HelloController { ... 중략 ... /** * Welcome을 JSON 형태로 반환한다. * @return {"message": "Welcome"} */ @GetMapping("api/json") @ResponseBody public Map<String, String> apiJson() { final Map<String, String> map = new HashMap<>(); map.put("message", "Welcome"); return map; } }

Map을 이용

 

 

Map말고 VO 객체를 이용하여 JSON 형태로 반환하는 방법도 있다.

User라는 클래스를 만든다.

<java />
package com.example.demo.vo; public class User { private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }

User 객체의 username에 값을 넣어 반환하면, JSON 형태로 응답한다.

<java />
@Controller public class HelloController { ...중략... /** * 객체를 JSON 형태로 반환한다. * @return {"username": "hong"} */ @GetMapping("api/user") @ResponseBody public User apiUser() { final User user = new User(); user.setUsername("hong"); return user; } }

객체를 이용

 

 

3. 어노테이션 설명

  • @Controller: Spring Framework에 해당 클래스가 컨트롤러라는것을 알려주는 역할을 한다.
  • @GetMapping: HTTP GET Method 방식으로 요청이 왔을때, 동작한다.
  • @ResponseBody: return값을 그대로 반환하게 함. (해당 어노테이션이 없으면, return값에 해당하는 페이지를 보여줌)
반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!