[HTTP] 메서드 활용 - HTTP URI 설계

chael_lo·2022년 9월 8일
0

HTTP

목록 보기
6/6

URI란?
인터넷에서 특정 자원을 나타내는 주소 값, 해당 값은 유일하다.

만약, 내가 값을 받기 위해 URI를 내 맘대로 작명하고 바꾸며 개발을 한다면? 혼자 일할 때도 다른 리소스의 URI를 예상할 수 없고 찾아보며 시간도 많이 들고 작명할 때마다 혼란이 올 것이다... 끔찍하다.

HTTP URI 설계는 어떤 서비스인지 이해할 수 있게 설계하여야 하며, 또한 모든 설계의 일관성을 유지하는 것이 중요하다.

URI 설계 기본 개념

URI 설계에서 알아야 할 개념은 문서, 컬렉션, 스토어, 컨트롤러 URI로 크게 4가지다.

문서

문서에서는 단일 개념을 표현한다.
객체 인스턴스나 데이터베이스 row를 나타낸다.

예시)
회원일 경우 /members라고 표현
주문일 경우 /orders라고 표현

컬렉션(POST 기반)

서버가 관리하는 리소스 디렉토리를 의미한다.
서버가 리소스의 URI를 생성하고 관리한다.

*서버가 리소스의 URI를 생성은 언제하지?
클라이언트는 등록할 리소스의 URI를 모른다.
클라이언트가 서버에 리소스를 요청(POST 메서드 호출)하고 서버는 관련 리소스 URI를 생성 해준다.

회원등록의 경우 클라이언트가 서버에게 /members로 리소스를 요청한다.
이후 서버가 /members/특정값 의 URI를 생성해준다.
여기에서 컬렉션은 /members다.

스토어(PUT 기반)

클라이언트가 관리하는 리소스 저장소를 의미한다.
클라이언트가 리소스의 URI를 알고 관리한다.

*클라이언트가 리소스의 URI를 알고 관리한다는건?
클라이언트가 직접 리소스를 지정한다.
리소스 URI를 직접 알고 등록한다라는 말과 같다.

파일 등록을 할 때 파일의 이름을 클라이언트가 알고 등록한다.
/files/특정파일이름
여기에서 스토어는 /files이다.

컨트롤러 URI

설계가 커지면 문서, 컬렉션, 스토어만을 사용해서 URI 설계하기 어려워진다.
문서, 컬렉션, 스토어로 해결하기 어려운 경우 동사를 직접 사용하여 표현한다.

/orders/특정값/delivery

URI 설계 기본 개념정리

  • 문서
    • 단일 개념
    • 문서 하나, 객체 인스턴스, 데이터베이스 row
  • 컬렉션
    • 서버가 관리하는 리소스 디렉토리
    • 서버가 리소스의 URI를 생성하고 관리
  • 스토어
    • 클라이언트가 관리하는 리소스 저장소
    • 클라이언트가 리소스의 URI를 알고 관리
  • 컨트롤러 URI
    • 문서, 컬렉션, 스토어로 해결하기 어려운 경우 사용
    • 동사를 직접 사용

지향해야 할 HTTP URI 설계 방법

  1. 최대한 문서, 컬렉션, 스토어를 이용해 URI를 설계
  2. 안된다면 컨트롤러 URI를 이용

출처: 모든 개발자를 위한 HTTP 웹 기본 지식 - HTTP 메서드 활용

profile
천천히 꾸준히

0개의 댓글