- 쿼리 파라미터
- GET, POST 가능
- HTTP 메시지 바디
- POST, PUT, PATCH
- 리소스 조회 -
GET
- 정적 데이터
- 쿼리 파라미터 사용 x
- 단순히 URL 경로로 단순하게 조회 가능
- ex) 이미지, 정적 텍스트 문서
- 동적 데이터
- 쿼리 파라미터 사용 o
- 필터, 정렬 시 조건에 주로 사용
- 정적 데이터
- 데이터 전송
-
쿼리 파라미터
- GET (== 동적 데이터 조회)- 리소르를 조회하기 위해 검색어, 정렬 조건 등의 데이터를 전송할 때
-
HTML Form
- POST,(GET-조회)-
메세지 바디에 데이터를 넣어서 전송
- 메세지 바디에 쿼리 파라미터 형식의 데이터가 들어감
- 서버에서 GET의 쿼리 파라미터와 같은 방식으로 데이터를 조회할 수 있음
- 메세지 바디에 쿼리 파라미터 형식의 데이터가 들어감
-
Content-Type
-
HTML Form으로 GET도 사용 가능
-
하지만 GET은 리소스 변경이 발생하는 곳에서 사용하면 안되기 때문에 조회용으로만 사용
ex)
→ 조회용으로 사용
-
-
-
HTTP API
- Form을 사용하지 않는 모든 상황에서의 데이터 전송
- 직접 HTTP 메시지를 만들어서 전송
- 서버 to 서버, 앱/웹 클라이언트
- get → 조회
- post, put, patch → 메시지 바디를 통해 데이터 전송
- JSON, TEXT, XML 등
- Content-Type
- application/json (표준)
- 과거에는 XML을 주로 사용했으나 지금은 JSON을 사용함
- text/plain, application/xml 등
- application/json (표준)
- Form을 사용하지 않는 모든 상황에서의 데이터 전송
-
-
- Collection : 서버가 관리하는 리소스 디렉토리 (= /members)
- POST 기반 등록
-
서버가
새로 생성된 리소스의 URI를 생성
해 줌→ PUT 기반 등록과의 차이점
- 클라이언트는 등록될 리소스의 URI를 몰라도 됨
- 파일 등록 시 : POST /members
-
-
- Store : 클라이언트가 관리하는 리소스 디렉토리 (= /files)
- PUT 기반 등록
-
클라이언트가 직접 리소스 URI 지정
해야 함→ POST 등록과의 차이점
- 파일 등록 시 : PUT /files/star.jpg
-
대부분의 경우 Collection을 사용함
-
GET, POST만 가능
- 데이터 수정, 삭제 등 메소드 사용에 제약이 있음
- 컨트롤 URI로 해결
-
컨트롤 URI
(= 컨트롤)동사로 된 리소스 경로
- GET, POST만 사용할 수 있는 HTML Form의 제약을 해결하기 위해 사용
- HTML Form뿐만 아니라 HTTP API에서도 HTTP 메소드만으로 동작을 나타낼 수 없는 경우 많이 사용함
- ex) /update, /process
-
문서 (Document)
-
단일 개념
- 파일 1개, 객체 인스턴스, 데이터베이스 row
ex) /members/100, /files/star.jpg
-
-
컬렉션 (Collection)
-
서버가 관리하는 리소스 디렉터리
ex) /members
-
-
스토어 (Store)
-
클라이언트가 관리하는 리소스 디렉터리
ex) /files
-
-
컨트롤러 (Controller)
-
위 3개로 해결하기 어려운 추가 프로세스 수행
-
동사를 직접 사용
ex) /members/{id}/delete
-