1. 용도에 맞게 HTTP 메서드 사용하기

  • GET : 조회
    • /product  : 상품 목록을 조회한다.(가져온다.)
    • /product/123 : 상품들중 인덱스가 123인 상품 정보를 조회한다.
  • POST: 생성, 기타행동 ( GET, PUT, PATCH, DELETE 로 표현하기 어려운 행동)
    • /products : 상품정보를 등록한다.
  • PUT, PATCH : 수정
    • /products /123 : 상품들 중 인덱스가 123인 상품 정보를 수정한다.
    •  
  • DELETE : 삭제
    • /products/123 : 상품들 중 인덱스가 123인 상품 정보를 삭제한다.

2. Resource(리소스: 명사들이 모여서 만들어진 자원) 간의 계층관계는 슬래시 ( / )를 이용하기

[GET] /posts/123/comments   // PK가 123인 게시글의 댓글의 목록을 불러온다.
  • 계층관계는 일반적으로 동사 대신에 명사를 사용 
    • 복수명사 사용 -> 리소스는 (여기에선) 명사들이 모여서사용되어질수 있는 어떤 자원(항목)
    • 하이픈(-)사용 ->URL은 하이퍼 링크가 걸리면밑줄(_)이 그어지는 경우가 많다 
    • 소문자로 작성 -> 일관성과 가독성

3. HTTP Method 별 Request Body 사용 여부

GET, DELETE 의 HTTP 메서드는 보통 Request Body에 데이터를 담지 않는다. 대부분의 웹 서버및 프레임워크에서도 Request Boby를 무시하고 요청하는 경우가 많다. 따라서 GET, DELETE의 HTTP 메서드를 사용할 때는 Query Parameter 나 Path Parameter를 활용하자.

 

4. Path , Query Parameter 사용 시기

▶ Path parameter

  1. 어떤 리소스를 식별하고 싶거나
  2. 다수의 리소스중 특정 리소스를 가르키는 경우 사용
  • /users/12 [GET] : // 모든 사용자 중 PK가 12인 사용자를 가져온다.

▶ Query Patameter :

  1. 필터링 GET
    • /car?size = middle (빨간색 자동차 목록을 반환)
  2. 정렬  GET  
    • /users?sort=name&order=asc (사용자 목록을 name을 기준으로 오름차순으로 정렬해서 조회) 
  3. 검색 GET
    • /movies/search?query=john (john이라는 키워드가 들어간 영화 목록을 조회
  4. 페이지네이션 GET
    • /posts?page=1&size=5 ( 1페이지에서  5개의 게시물 목록을 조회

 

+ Recent posts