언어 및 도구들 공부/Javascript
path 파라미터 vs 쿼리스트링 추가 1
Dr.Mlem
2024. 9. 8. 21:27
http://localhost:3001/student?id=10101 vs http://localhost:3001/student/10101의 차이점
두 가지 URL의 차이는 RESTful API 설계 관점에서 데이터 요청의 방법과 의미가 다릅니다. 아래에 두 가지 접근 방식의 차이와 그 의미를 설명합니다.
1. http://localhost:3001/student?id=10101 (쿼리 스트링 방식)
- 설명: 이 URL은 쿼리 스트링(Query String) 방식을 사용하여 데이터를 요청합니다. ?id=10101는 요청의 일부로 서버에 추가적인 정보를 전달하기 위해 URL 끝에 붙은 쿼리 파라미터입니다.
- 의미: 쿼리 스트링 방식은 일반적으로 데이터의 검색, 필터링 또는 조건부 조회에 사용됩니다. 예를 들어, ID가 10101인 학생을 조회하거나 여러 조건에 따라 데이터를 검색하는 경우 사용될 수 있습니다.
- 용도:
- 주로 GET 요청에서 사용되며, 서버에 특정 조건에 맞는 리소스를 요청할 때 사용됩니다.
- http://localhost:3001/student?id=10101라는 요청은 "모든 학생들 중에서 ID가 10101인 학생을 조회하라"는 의미를 가질 수 있습니다.
- 이 방식은 서버가 쿼리 파라미터(id)를 해석하고 조건에 맞는 결과를 반환하도록 구현되어 있어야 합니다.
- 예시:서버는 쿼리 파라미터를 해석하여 해당 조건에 맞는 데이터를 반환할 수 있습니다.
-
plaintextCopy codeGET /student?id=10101
2. http://localhost:3001/student/10101 (패스 파라미터 방식)
- 설명: 이 URL은 패스 파라미터(Path Parameter) 방식을 사용하여 특정 리소스에 접근합니다. 10101은 경로의 일부로서 student라는 리소스의 특정 ID를 식별합니다.
- 의미: 패스 파라미터 방식은 일반적으로 특정 리소스를 식별하고 조작(조회, 수정, 삭제 등)하기 위해 사용됩니다. 여기서 10101은 학생 리소스의 고유한 ID를 나타냅니다.
- 용도:
- 주로 GET, PUT, DELETE 등과 같은 HTTP 메서드와 함께 사용되며, 특정 리소스에 대한 조작을 나타냅니다.
- http://localhost:3001/student/10101는 "ID가 10101인 특정 학생 리소스를 조회, 수정 또는 삭제하라"는 의미입니다.
- RESTful API 설계에서는 패스 파라미터 방식을 사용하여 특정 리소스를 명확히 지정하는 것이 일반적입니다.
- 예시:서버는 URL 경로의 일부로 제공된 ID(10101)를 사용하여 해당 리소스를 반환합니다.
-
plaintextCopy codeGET /student/10101
차이점 요약
- 의미:
- http://localhost:3001/student?id=10101:
- 특정 조건(ID가 10101)으로 학생을 조회하거나 필터링할 때 사용됩니다.
- http://localhost:3001/student/10101:
- ID가 10101인 특정 학생 리소스에 직접 접근하거나 조작할 때 사용됩니다.
- http://localhost:3001/student?id=10101:
- RESTful 디자인 관점:
- 패스 파라미터 방식 (/student/10101)은 RESTful API 설계에서 리소스를 명확히 식별하고 조작하는 데 적합합니다.
- 쿼리 스트링 방식 (?id=10101)은 리소스에 대한 조건부 조회나 필터링에 적합합니다.
- 서버 구현 차이:
- ?id=10101과 같은 쿼리 스트링 방식에서는 서버가 id 파라미터를 읽어 해당 조건에 맞는 데이터를 검색하거나 조회해야 합니다.
- /student/10101과 같은 패스 파라미터 방식에서는 서버가 URL 경로에서 10101을 추출해 해당 ID에 맞는 리소스를 조회해야 합니다.
결론
- 패스 파라미터 방식 (/student/10101): RESTful API 설계 원칙에 맞으며, 특정 리소스를 직접 조작하거나 접근할 때 사용합니다. 이 방식이 명확하고 직관적이기 때문에 RESTful API에서는 선호됩니다.
- 쿼리 스트링 방식 (?id=10101): 특정 조건에 따른 필터링, 검색 등의 조회 기능을 구현할 때 사용됩니다.
따라서, 특정 학생을 명확하게 식별하고 그 학생에 대한 조작을 수행하려면 패스 파라미터 방식을 사용하는 것이 더 적합합니다.