Stack Overflow/스프링
[스프링] Spring REST API 데이터 JSON 송수신 가능하도록 간단하게 구현, 생성하기 (추가로 LIST 작업)
Lich King
2022. 2. 23. 09:35
스프링 프로젝트를 개발하다보면 대외 업체와 API 데이터 송수신을 주고받아야 할 때가 있다.
방식은 당연히 여러가지가 있겠지만, 일반적으로 간단하게 만들어보도록 한다.
@RestController
public class SampleApiController {
/**
* callAPI
* @param request
* @param response
* @return
* @throws Exception
*/
@RequestMapping(value = "callAPI", method = RequestMethod.GET)
public @ResponseBody HashMap<String,Object> callAPI(HttpServletRequest request, HttpServletResponse response) throws Exception {
HashMap<String,Object> apiRtn = new HashMap<String, Object>();
apiRtn.put("KEY1", "DATA1");
apiRtn.put("KEY2", "DATA12");
apiRtn.put("KEY3", "DATA123");
apiRtn.put("KEY4", "DATA1234");
return apiRtn;
}
}
긴 설명이 필요없다.
Spring REST API 송수신을 하기 위한 간단한 준비는 여기까지가 끝이다.
HashMap 객체를 먼저 생성한다. 그리고 KEY와 VALUE 값을 넣어준다.
이렇게 임의로 처리한 값을 호출해주면?
localhost:8080//callAPI |
{
"KEY2":"DATA12",
"KEY1":"DATA1",
"KEY4":"DATA1234",
"KEY3":"DATA123"
}
다음과 같은 결과를 얻을 수 있다.
JSON 데이터를 LIST 형식으로 얻고 싶은 경우에는 어떻게 하면 좋을까?
/**
* callAPI
* @param request
* @param response
* @return
* @throws Exception
*/
@RequestMapping(value = "callAPI", method = RequestMethod.GET)
public @ResponseBody HashMap<String,Object> callAPI(HttpServletRequest request, HttpServletResponse response) throws Exception {
HashMap<String,Object> apiRtn = new HashMap<String, Object>();
List<String> listItem = new ArrayList<String>();
apiRtn.put("KEY1", "DATA1");
listItem.add("LIST1");
listItem.add("LIST12");
apiRtn.put("KEY2", listItem);
return apiRtn;
}
간단하다.. 리스트를 만들어줘서 HashMap에 넣어주면 된다.
{
"KEY2":[
"LIST1",
"LIST12"
],
"KEY1":"DATA1"
}
상기 내용과 같이 JSON 데이터가 나오는 것을 알 수 있다.
여기서 또 의문을 가질 수 있다.
큰 따옴표를 어떻게 없앨까?
이 내용은 다른 방식으로 접근해야 한다.
그것은 나중에 시간나면..서술하기로