본문 바로가기
Stack Overflow/스프링

[스프링] Spring REST API 데이터 JSON 송수신 가능하도록 간단하게 구현, 생성하기 (추가로 LIST 작업)

by Lich King 2022. 2. 23.

스프링 프로젝트를 개발하다보면 대외 업체와 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 데이터가 나오는 것을 알 수 있다.
여기서 또 의문을 가질 수 있다.
큰 따옴표를 어떻게 없앨까?
이 내용은 다른 방식으로 접근해야 한다.
그것은 나중에 시간나면..서술하기로

댓글