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

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

 

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

REST API 만들기

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

 

문자열 데이터 반환

@GetMapping을 이용하여 HTTP GET Methodapi/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을 이용

 

 

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값에 해당하는 페이지를 보여줌)
반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

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