클라이언트에서 서버로 데이터 전송
데이터 전달 방식은 크게 2가지
1. 쿼리 파라미터를 통한 데이터 전송
GET
주로 정렬 필터(검색어)
2.메시지 바디를 통한 데이터 전송
POST, PUT, PATCH
회원 가입, 상품 주문, 리소스 등록, 리소스 변경
클라이언트 -> 서버 데이터 전송 네 가지 상황
HTML API 활용
서버 to 서버 (백엔드 시스템 통신)
앱 클라이언트 (아이폰, 안드로이드)
웹 클라이언트 (HTML에서 Form 전송 대신 자바 스크립트를 통한 통신에 사용 (AJAX)
=> 리액트나 뷰가 주로 사용
POST, PUT, PATCH: 메시지 바디를 통해 데이터 전송
GET: 조회, 쿼리 파라미터로 데이터 전달
Content-Type: application/json을 주로 사용(사실상 표준)
TEXT, XML, JSON 등등
옛날에는 XML를 표준처럼 사용했지만 최근은 json을 주로 사용 (심플하고 이해하기 쉽고 데이터에 대한 크기도 XML에 비해 상대적으로 작다.) 최근에는 사실상 json이 표준임
HTTP API 설계 예시
위의 형식을 컬렉션이라 한다.
컬렉션이란?
서버가 관리하는 리소스 디렉토리
서버가 리소스의 URI를 생성하고 관리
여기러 컬렉션은 /members
위의 형식을 스토어라고 한다.
스토어란?
클라이언트가 관리하는 리소스 저장소
클라이언트 리소스의 URI를 알고 관리
여기서 스토어는 /files
주로 대부분 컬렉션 사용
파일, 게시판 (성격마다 다름) 같은 경우 스토어 스타일이 맞긴함
실무에서 복잡한 환경에서는 ....
컨트롤러 or 컨트롤 URI 가 필요함
컨트롤러
문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행
동사를 직접 사용
예) /members/{id}/delete
Reference
김영한 님 - 모든 개발자를 위한 HTTP 웹 기본 지식