본문 바로가기
📝공부, 스크랩/프로덕트

URI 설계, HTTP 메서드

by grow_s0 2023. 2. 19.
728x90
API URI 설계

리소스와 행위 분리 중요

- 리소스 : 명사의 개념, 회원 조회/등록/수정 등을 할 때 '회원'

- 행위 : 동사의 개념, 회원 조회/등록/수정 등을 할 때 '조회/등록/수정'

 

URI는 리소스막 식별함 => 행위는 HTTP method로 해결

 

 

HTTP 메서드 종류

- GET : 리소스를 조회, 쿼리를 통해 서버에 데이터 전달, 권장하지는 X

- POST : 새 리소스를 등록하거나 요청 데이터를 처리, 메시지 바디를 통해 서버로 데이터 전달

- PUT : 리소스를 완전히 대체 (리소스가 없으면 생성, 즉 덮어버림), 클라이언트가 리소스 식별

- PATCH : 리소스 부분을 변경

- DELETE: 리소스 삭제 

 

POST를 제외하고는 두번 이상 요청해도 괜찮음 (멱등)

= 서버에게 보냈는데 서버가 반응했는지 모를때 또 보내도 괜찮음

 

 

데이터 전달 방법

2가지 방법 존재

1. 쿼리 파라미터 : GET (주로 정렬, 필터, 검색)

2. 메시지 바디 : POST, PUT, PATCH  (주로 회원가입, 주문, 등록, 변경 등)

 

 

상황

- 정적 데이터 조회 : 이미지, 텍스트 문서

- 동적 데이터 조회 : 검색, 정렬, 필터 등

- HTML Form : 회원가입, 상품 주문, 데이터 변경 / GET, POST만 지원

- HTTP API : 서버에서 서버로, 앱/웹 클라이언트 / PUT, POST, PATCH로 데이터 전송 

 

 

HTTP API - 컬렉션 : POST 기반 등록, 서버가 리소스 URI 결정

HTTP API - 스토어 : PUT 기반 등록, 클라이언트가 리소스 URI 결정

HTML FORM 사용 : 순수 HTML + HTML form 사용, GET과 POST만 지원 

728x90