HTTP API 설계

Seongho·2023년 3월 7일
0

WEB

목록 보기
6/10

클라이언트 -> 서버 데이터 전송 방식

  • HTTP 메세지의 시작 부분의 쿼리 파라미터를 통한 데이터 전송
    -> GET - 데이터 정렬 필터 ex) 무신사에서 필터 남자로 설정
  • 메세지 바디를 통한 데이터 전송
    -> POST, PUT, PATCH ex) 회원 가입, 상품 주문, 등록, 변경

HTTP API 설계 예시

회원 관리 시스템 (POST 기반)

  • 회원 목록 : /members 로 GET 요청
  • 회원 등록 : /members 로 POST 요청
  • 회원 조회 : /members/id값 으로 GET 요청
  • 회원 수정 : /members/id값 으로 POST, PATCH, PUT 요청 **PUT은 보통 게시판 게시물 수정 같은 것에 사용
  • 회원 삭제 : /members/id값 으로 DELETE 요청

회원 관리 시스템에서

회원 등록에서 클라이언트는 등록될 리소스의 URI를 모른다. 클라이언트는 /members로 POST요청을 하면, 서버에서

와 같이 리소스 URI를 생성한다.
그리고 /members는 컬렉션(Collection)이라 하며, 이는 서버가 관리하는 리소스 디렉토리이다. 즉, 서버가 리소스의 URI를 생성하고 관리한다.

파일 관리 시스템 (PUT 기반)

  • 파일 목록 : /files 로 GET 요청
  • 파일 조회 : /files/파일이름 으로 GET 요청
  • 파일 등록 : /files/파일이름 으로 PUT 요청
  • 파일 삭제 : /files/파일이름 으로 DELETE 요청
  • 파일 대량 등록 : /files 로 POST 요청

파일 관리 시스템에서

파일 등록에서 클라이언트는 PUT /files/image.jpg 와 같이 서버에 HTTP 요청을 보내는데, 클라이언트가 리소스의 URI를 알고 있는 것이다. 즉, 클라이언트가 리소스의 URI를 직접 지정한다.
/files를 스토어(Store)라 하며, 이는 클라이언트가 관리하는 리소스 저장소이다. 즉, 클라이언트가 리소스의 URI를 알고 관리한다.

HTML FORM

  • 회원 목록 : /members 로 GET 요청
  • 회원 등록 폼 : /members/new 로 GET 요청
  • 회원 등록 : /members/new 로 POST 요청
  • 회원 조회 : members/id값 로 GET 요청
  • 회원 수정 폼 : /members/id값/edit 으로 GET 요청
  • 회원 수정 : /members/id값/edit 으로 POST 요청
  • 회원 삭제 : /members/id값/delete 로 POST 요청
    ** 폼은 회원 등록을 클릭했을 때, 창에 띄워지는 화면을 말함.

HTML FORM에서

HTML FORM에서는 GET, POST만 지원한다. 따라서, 이 제약을 해결하기 위해 컨트롤 URI를 사용한다.
예를 들면, 위 예제에서, 회원 삭제를 할 때, 원래 같으면 DELETE 매서드를 사용했겠지만, GET 과 POST만 지원하기 때문에 컨트롤 URI를 사용해 /members/id값/delete 로 POST 요청을 보낸다.
이때, 경로는 동사를 사용한다.

** 인프런 HTTP 강의 (김영한) 참고

profile
Record What I Learned

0개의 댓글