[백엔드] query param, path param이란? (+ request body)

군자·2024년 5월 22일
0

BackEnd

목록 보기
7/8
post-thumbnail

꽤 길었던 무기력증을 타파하고자 다시 개념정리를 들어가보자.
개념정리를 좋아하는 편이라 이런거 한번 하면 꽤 성취감도 있고 .. 좋은거같다 ..


✨ 들어가기에 앞서

이 글을 읽고 오면 좋을 것 같다..!
내 글이라서 추천하는 것도 있지만, 미래의 내가 읽더라도 한번 더 개념을 훑고 이부분으로 넘어오면 좋을 것 같다.

📌 Query Parameter란?

url에 특정한 조건을 주고 싶을 때 사용하는 매개변수 유형
예시: https://blog?name=kim&blogName=kim'sBlog

위의 예시와 같이 ?를 통해 URL값과 구분하고, &로 구분된 이름=값 쌍으로 구성되는 매개변수이다.

🔍 그럼 왜 쓰는가?!

같은 블로그 목록 데이터를 호출하는데

  1. 최신글이고 블로그 카테고리가 일상인 글 불러오기
  2. 최신글이고 카테고리가 취미인 글 따로 불러오기
  3. 오래된 순으로 글 불러오기

이렇게 불러오는 정보가 다르다고 해서 계속 새로운 API를 만드는 것은 너무나도 비효율적이다.
따라서! 필요한 조건을 요청에 따라 선택적으로 처리할 수 있는 통일된 API 구성 시에 유용한 방법이다.

🔍 사용 조건

  • HTTP의 [GET], [DELETE] 요청시에만 사용
  • 유일 값을 식별하기 위한 용도가 아닌 위와 같이 옵션을 줄 때 사용
  • 데이터 필터링, 데이터 정렬, 데이터 수 조절(페이지네이션), 검색 등에 사용된다.

보통 GET Method에는 request body를 사용하지 않는 것이 권장됨.
따라서 GET Method를 호출하며 동시에 정보를 전달하는 경우에는 query parameter를 이용해야 함.

📌 Path Parameter란?

http://naver.com/stocks/kakao 의 kakao는 다른 값으로 바뀔 수 있는 값이다! 이와 같이 가변적인 변수로 지정될 수 있는 것을 path parameter라 부른다.

위에서 배운 Query parameter의 개념을 적용하여 비교해보면 더 쉽게 다가온다!
GET https://~~/blogs : 모든 블로그의 정보가 나옴
GET https://~~/blog/1 : id 1에 해당하는 블로그의 글이 나옴

🔍 사용 조건

  • query parameter와 다르게 모든 메소드에서 사용 가능.
    특히 patch에서 특정 리소스를 지칭하여 수정하는 것을 표현할 때, 유용하게 사용 가능
    delete 메소드 또한 특정 리소스를 지칭하여 삭제하기 편함.

📌 request body에 담아 보내는건??

위의 내용을 정리하다보니 추가적인 의문점이 생겼다!!
request body에 담아 보내는 것은 그럼 무슨 차이가 있는걸까? 처음 api를 제작할 때 무조건 body에 넣어 보냈기에 의문이 생기기 시작했다..

  • 보통 POST를 사용하여 JSON 오브젝트를 request body 안에 넣어 보낸다.
  • 인수가 많거나, 직렬화 된 이진데이터와 같이 사람이 읽을 수 없는 경우에 사용한다.

출처

https://velog.io/@juno97/API-Path-parameter-VS-Query-Parameter-기록용
https://velog.io/@montoseon/param-vs-query-vs-body

profile
헬로 아이엠군자. 굿투씨유

0개의 댓글