반응형
Query String
- URL의 ? 뒤에 key-value 형태로 데이터를 전달하는 방식.
ex: `https://example.com/products?category=shoes&size=270&color=black` - 보통 필터링, 검색, 정렬, 페이징 등의 기능을 위해 사용된다.
Path Variable
- URL의 특정 부분을 변수처럼 사용하여 데이터를 전달하는 방식.
ex: `https://example.com/products/123` - 주로 리소스의 고유한 식별자 (ID, 이름 등)를 포함할 때 사용된다.
Restful API의 원칙 상 특정 리소스를 고유하게 식별할 때는 Path Variable을 사용해야 한다고 한다.
그렇다면 이 둘을 각각 언제 사용해야 할까?
바로 위에 적혀 있는 대로 기타 변수로 데이터를 필터링하거나 페이징할 때에는 Query String을 사용하고, 특정 리소스를 고유한 식별자로 조회하기 위해서는 Path Variable을 사용하면 된다.
- 특정 학급에 속해 있는 학생들의 정보를 반환하고 싶은 경우: Query String
왜? 학급은 고유한 리소스라기보다는 학생의 속성에 가깝기 때문에, 해당 속성을 가진 학생을 필터링하는 것이므로!
`/users?class=3` - 특정 학교의 특정 유저를 학교id와 유저id로 찾고 싶은 경우: Path Variable
왜? 학교와 유저는 각각 고유한 id를 가지고 있는 리소스이기 때문에 Restful API 원칙에 따라 Path Variable을 사용하는 게 바람직!
`/schools/{schoolId}/users/{userId}`
물론 학급도 개발자의 관점에 따라서 학급id를 가지는 특정 리소스로 볼 수 있긴 하겠지만... 이는 개발자가 처음에 모델 설계를 어떻게 했느냐에 따라 달라지는 문제인 것 같다.
'간단 정리 > 웹 개발' 카테고리의 다른 글
[간단 정리] HTTPS의 암호화 방식 (0) | 2025.02.07 |
---|---|
[간단 정리] URL 끝에 붙는 슬래시(/), 트레일링 슬래시 (0) | 2025.02.05 |