Spring/Spring Boot

[Spring] Path Variable vs Query Parameter

JoonYong 2024. 3. 29. 23:26

 

1.  들어가며

API를 설계하는 과정에서 URL의 구성 방식은 사용자와의 인터랙션을 결정짓는 중요한 요소입니다. 특히, RESTful API를 설계할 때, 리소스의 식별과 검색 조건 등을 URL에 어떻게 표현할지는 매우 중요한 설계 결정 중 하나입니다.

 

API 명세서를 작성하던중 Path Variable Query Parameter의 정확한 차이점에 대하여 알고자 이 글을 작성합니다..

 

 

Path Variable Query Parameter의 공통점은 유동적인 값을 전달하기 위하여 URL로 넘겨진다는 것입니다.

 

Path Variable 또는

  • path variable
  • path parameter
  • paramter
  • URL parameter

Query Parameter 또는

  • query string
  • query parameter
  • query
  • URL query

 


2. Path Variable

Path Variable은 URL의 경로 부분에 변수를 포함시키는 방식으로, 주로 리소스의 식별자로 사용됩니다. 이 방식은 리소스 간의 계층적 관계를 명확하게 표현할 수 있으며, RESTful API의 주소 체계에 잘 맞습니다.

 

 

/users/12345
  • 여기서 /users는 사용자 정보에 대한 리소스를 나타냅니다.
  • 12345는 특정 사용자의 고유 식별자를 나타내는 Path Variable입니다.
  • 이 URL은 ID가 12345인 사용자의 정보를 요청하고자 할 때 사용됩니다.

 


 

3. Query Parameter

Query Parameter는 URL의 끝에 ?와 함께 추가되며, key=value 형태로 표현됩니다. 주로 검색, 필터링, 정렬 등의 추가적인 정보를 제공할 때 사용됩니다. Query Parameter는 리소스 자체보다는 리소스에 대한 요청을 세밀하게 조정할 때 유용합니다.

 

 

/users?age=30&country=Korea
  • 이 URL은 나이가 30이며, 국가가 Korea인 사용자를 검색하고자 할 때 사용됩니다.
  • age=30과 country=Korea는 Query Parameter에 해당하며, 사용자를 필터링하는 조건을 제공합니다.

 


4. 차이점

  • 용도
    • Path Variable은 주로 리소스의 식별에 사용되며, URL의 구조적인 부분에 포함됩니다.
    • Query Parameter는 리소스에 대한 추가적인 조작(검색, 필터링, 정렬 등)을 지정할 때 사용됩니다.
  • 표현 방식
    • Path Variable은 URL의 경로에 {중괄호}안에 들어가며, /로 구분됩니다.
    • Query Parameter는 URL의 끝에 ?로 시작해 &로 구분됩니다.
  • 선택적 사용
    • Path Variable은 URL의 필수적인 부분으로, 해당 리소스를 명확히 식별하기 위해 사용됩니다.
    • Query Parameter는 선택적으로 사용되며, 같은 리소스에 대한 다양한 요청을 표현할 수 있습니다.

 

 

 

 

[Reference]

https://i-ten.tistory.com/243

https://velog.io/@pjh1011409/imrwrjrl