[코틀린, kotlin / 스프링 mvc] GET API에 관하여 알아보자.


1. Get이란?

HTTP GET 요청은 서버로부터 데이터를 조회하는 데 주로 사용된다. 웹 브라우저 주소창에 URL을 입력하거나 링크를 클릭할 때 대부분 GET 요청이 발생한다.

2. Get API 구현 방법

@RestController
@RequestMapping("/api")
class MyController {
    @GetMapping("/items") //(1) GetMapping 참조
        fun getItems(): String {
    
    	return "item"
        }
    
    @GetMapping("/items/{item}/{id}") //(2)GetMapping @PathVariable 참조
	fun pathVariable(@PathVariable item: String, @PathVariable id: Int): String {
    
    	return item+" "+id
	}
    
    @GetMapping("/items/query-param")  //(3)GetMapping 쿼리 파라미터 참조
	fun queryParam(@RequestParam item: String, @RequestParam id: Int): String {
    
    	return item+" "+id
	}
    
    @GetMapping("/items/query-param/object")  //(4)GetMapping 객체 참조
	fun queryObject(itemData: ItemData): ItemData {
    
      	return itemData
	}
    
    @GetMapping("/items/query-param/map")  //(5)GetMapping Map 참조
	fun queryMap(@RequestParam map : Map<String, Any>): Map<String, Any> {
    
    	return map
	}
}

(1) GetMapping 사용

@GetMapping 어노테이션은 특정 경로의 GET 요청을 처리하는 메소드를 지정한다. 코틀린,스프링 MVC에서는 위 코드의 fun getItems()와 같이 사용할 수 있다.

응답 예시)

(2) GetMapping @PathVariable 사용

@PathVariable을 사용하면 URL의 일부를 변수로 활용할 수 있다. RESTful API에서 자주 사용되는 기법이다.

응답 예시)

(3) GetMapping 쿼리 파라미터 사용

쿼리 파라미터는 URL에 ? 뒤에 위치하며, key=value 형태로 데이터를 전달한다. @RequestParam을 사용하여 쿼리 파라미터를 받을 수 있다.

응답 예시)

(4) GetMapping 객체 사용

쿼리 파라미터들 객체로 받으려면, 해당 객체를 생성하고 @RequestParam 어노테이션을 생략할 수 있다.

응답 예시)

(5) GetMapping Map 사용

모든 쿼리 파라미터를 Map 형태로 받고 싶을 때는 @RequestParam과 함께 Map을 사용할 수 있다.

응답 예시)