블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
dependency 추가
REST API
기능을 만들기 위해서는 spring-boot-starter-web
디펜던시가 필요하다.
pom.xml
에 아래 코드를 추가한다.
<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
REST API 만들기
controller/HelloController.java 파일을 생성한다.
문자열 데이터 반환
@GetMapping
을 이용하여 HTTP GET Method
로 api/welcome
경로로 요청이 들어오면, Welcome
을 반환한다.
@Controller
public class HelloController {
/**
* Welcome을 반환한다.
* @return Welcome
*/
@GetMapping("api/welcome")
@ResponseBody
public String apiWelcome() {
return "Welcome";
}
}
JSON 형식의 데이터 반환
Map
으로 반환하면, JSON
으로 변환하여 반환하다.
@GetMapping
을 사용했기 때문에, HTTP GET Method
로 요청이 들어왔을때 이루어진다.
@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
말고 VO
객체를 이용하여 JSON
형태로 반환하는 방법도 있다.
User
라는 클래스를 만든다.
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
형태로 응답한다.
@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;
}
}
어노테이션 설명
@Controller
: Spring Framework에 해당 클래스가 컨트롤러라는것을 알려주는 역할을 한다.@GetMapping
: HTTP GET Method 방식으로 요청이 왔을때, 동작한다.@ResponseBody
: return값을 그대로 반환하게 함. (해당 어노테이션이 없으면, return값에 해당하는 페이지를 보여줌)
반응형
'Backend > Spring Boot' 카테고리의 다른 글
Spring Boot 에서 JPA 사용하기 (MySQL 사용) (0) | 2020.10.31 |
---|---|
Spring Boot, Maven 프로젝트에 롬복 적용하기 (0) | 2020.10.31 |
SpringBoot 서버 포트 변경하기 (0) | 2020.10.31 |
Spring Boot 롬복(Lombok) 적용 / Gradle과 IntelliJ 사용 (0) | 2020.03.07 |
Gradle 환경에서 Spring Boot 에 Swagger 2 적용하기 (0) | 2020.03.07 |