URL의 끝에 '?' 뒤에 나오는 문자열이다. 쿼리스트링은 일반적으로 'key = value'의 형태로 표현된다. 주로 조회(GET)요청에서 사용됨
URL?key = value
-> http://localhost:8080/api/memos?username=minjae
? : 쿼리 스트링 시작
username : 파라미터 이름(key)
minjae : 파라미터 값(value)
여러 개의 쿼리 스트링은 '&'로 구분됩니다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class QueryStringController {
@GetMapping("/greeting")
// @RequestParam은 생략가능하다
public String greeting(@RequestParam String name) {
return "Hello, " + name;
}
}
이 경우, '/greeting?name = John'과 같은 형태로 요청을 보낼 수 있다.
경로 변수는 URL 경로에 포함된 값을 의미하며, Spring에서는 {변수명} 형태로 경로를 정의하고 실제 요청 시 해당 위치의 값이 @PathVariable을 통해 전달된다.
/api/memos/1
여기서 1이 경로 변수이다.
URL의 특정 부분을 변수로 사용할 수 있다. Spring에서는 '@PathVariable' 어노테이션을 사용하여 경로 변수를 사용할 수 있다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class PathVariableController {
@GetMapping("/greeting/{name}")
public String greeting(@PathVariable String name) {
return "Hello, " + name;
}
}
이 경우, 'greeting/John'과 같은 형태로 요청을 보낼 수 있다.
요약하면, 쿼리 스트링은 선택적인 매개변수를 전달하는 데 주로 사용되며, 경로 변수는 필수 매개변수를 전달하는 데 주로 사용된다. 선택적인 데이터나 필터링을 위한 매개변수는 쿼리 스트링으로, 필수 적인 데이터는 경로 변수로 전달하는 것이 일반적이다.