Spring4에서 추가된 @Controller와 @Responsebody 어노테이션이 결합된 어노테이션으로 기존에 view를 반환하던 일반 컨트롤러와 달리 클라이언트에서 해당 url로 요청시 결과 데이터를 반환하는 목적으로 사용 주로 JSON 형식으로 반환
요청시 현재 일시를 반환하는 컨트롤러 만들어보기
package com.example.firstapi.api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
@RestController
public class ApiController {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초");
@GetMapping("/api/hello")
public String hello() {
return "Hello World";
}
@GetMapping("/api/now")
public String now() {
Date nowDate = new Date();
return formatter.format(nowDate);
}
@GetMapping("/api/now/json")
public HashMap<String, Object> nowJson() {
HashMap<String, Object> retMap = new HashMap<>();
Date nowDate = new Date();
retMap.put("now", formatter.format(nowDate));
return retMap;
}
}
hello()나 now()처럼 단순 문자열을 반환 하는것도 가능하고
nowJson()처럼 키와 벨류로 구성된 HashMap등을 활용하여 Json 형태로도 반환이 가능하다
포스트맨을 사용하여 테스트 해보기

/api/hello 로 요청시 "Hello World"를 리턴

/api/now 로 요청시 현재 일시가 반환

/api/now/json 으로 요청시 현재 일시가 JSON형식으로 반환