Rest의 구체적인 개념은
HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
URI는 정보의 자원을 표현해야 한다.
자원에 대한 행위는 HTTP Method(GET,POST,PUT,DELETE등)으로 표현한다.
rest를 기반으로 서비스 api를 구현한 것
CRUD
Create : Post / 자원 생성
Read : Get / 자원을 조회, 요청
Update : Put / 정보를 수정 (전체교체)
Delete : Delete / 자원 삭제
PATCH : 일부 수정
일관적인 인터페이스로 분리되어야한다.
stateless (무상태)
각 요청 간 클라이언트의 context가 서버에 저장되어서는 안된다.
캐시처리가능
계층화
인터페이스의 일관성
아키텍처를 단순화 시키고 작은 단위로 분리함으로써 클라이언트 서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.'
참고 리소스 원형
- 도큐먼트 : 객체 인스턴스나 데이터베이스 레코드와 유사한 개념
- 컬렉션 : 서버에서 관리하는 디렉터리라는 리소스
- 스토어 : 클라이언트에서 관리하는 리소스 저장소
EX)
GET /Member/1 (x)
GET /members/1 (o)
EX)
GET /members/delete/1 (x)
DELETE / members/1 (o)
EX)
GET /members/show/1 -> GET /members/1
GET /members/insert/2 -> POST /members/2
http://restapi.example.com/houses/apartments
http://restapi.example.com/houses/apartments/ (X)
Rest api란?
- 웹에서 존재하는 자원에 고유한 uri를 부여해서 http메소드 방식으로 자원의 상태(정보)를 주고받는 것을 의미
- 이를 기반으로 서비스 api를 구현한 것이 Rest api다.
Restful이란?
- Rest api의 설계 규칙을 명확하게 지켜주는것.
- 슬래시를 통해 계층관계를 표시, 숫자는 id를 나타냄, 동사보단 명사 위주
HTTP메소드
- GET => 정보를 조회
- POST => 데이터 생성
- PUT => 데이터 수정(전체수정)
- PATCH => 데이터 수정(일부수정)
- DELETE => 데이터 삭제
Rest api 특징
- 무상태성
- 캐시처리가능
- 서버클라이언트구조
- 계층적
- 인터페이스의 일관성
- 필요한 이유
- 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서 통신
- 멀티플랫폼 => WEB브라우저 외의 클라이언트를 위해