[TIL] Path parameter VS Query Parameter

·2022년 9월 25일
0

TIL

목록 보기
10/10
post-thumbnail

이번주부터 나이키_클론코딩 프로젝트를 시작했는데
담당하는 기능 중 쿼리파라미터를 쓰는게 적합한 상황이 생겼다.

플젝 진행하며 쿼리파라미터, 쿼리스트링 등등의 용어를 들어봤지만
정확히 그 개념은 모르고 있었기 때문에 소통하는데에 어려움이 있어서
공부한 내용을 정리해두려고 한다.
그럼 고고!


1. Path Parameter

1-1. path parameter란?

http://naver.com/stocks/kakao
해당 url주소를 보면 kakao사의 주식 정보인 것을 알 수 있다.
회사가 변경될 때마다 /kakao 부분이 다른 회사의 이름으로 변경되고,
이 부분은 클라이언트가 정보를 요청할 때 바뀔 수 있는 가변적인 자리이다.

해당 부분은 변수로 지정해둘 수 있다는 의미로 Path Parameter라고 부른다.

(백엔드에서는 stocks/:companyName 과 같은 형태로 라우팅)


위 그림과 같이 Path Parameter은 모든 메소드에서 사용이 가능하며,
POST를 제외한 나머지 메소드에서는 특정 리소스를 지정해서 요청할 수 있다.


2. Query Parameter

2-1. query parameter란?

url에서 특정한 조건을 주고싶을 때 사용하는 매개변수로

같은 API내에서 조건을 적용하여 나열할 때 주로 사용한다.

url끝에 물음표(?)뒤에 나타나며, 기호&로 구분된 이름=값 쌍으로 구성된다.

같은 신발내에서 사이즈/컬러/브랜드 등 조건을 적용할 때마다 API를 새로 생성하는건 비효율적인데, 쿼리 파라미터를 이용하면 조건을 요청에 따라 선택적으로 처리할 수 있다.

쿼리파라미터는 GET, DELETE 메소드에서만 사용 가능하며
주로 옵션을 주는 상황에서 사용한다.
-> 데이터 필터링, 데이터 정렬, 페이지네이션(데이터 수 조절), 검색 등등

2-1-1. 필터링 (GET 메소드)

url에서 쿼리파라미터를 이어서 나열할 때, & 연산자를 이용하지만 이건 항상 AND의 뜻은 아니다.
api작성 방식에 따라 or조건으로 이용할 수 있다. (&연산자와 api동작 방식은 서로 독립적)

2-1-2. 정렬 (GET 메소드)

2-1-3. 데이터 수 조절 (Pagination)

클라이언트가 요청할 때 모든 데이터를 호출하면 상황에 따라 비효율적일 수 있다. 이 때 데이터의 시작점과 끝나는 점을 쿼리스트링을 통해 전달할 수 있다.
offset : 데이터의 시작점 , limit : 데이터의 개수 제한

2-1-4. 검색

특정한 키워드를 기준으로 필터링하는것으로 필터링과 동일한 기능이다.

[GET] /products?price=3000
[GET] /products?ordering=-id
[GET] /products?offset=0&limit=100
[GET] /products?serach=홍길동
Query parameter을 이용해 생성된 위 4가지 API는 기본적으로 [GET] /products 와 동일한 API를 호출하는 것

profile
병아리 개발자입니다 🐥 틀린 정보가 있다면 말씀해주세요!

0개의 댓글