REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.
JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이다.
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고
HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT)
Delete : 삭제(DELETE)
HEAD: header 정보 조회(HEAD)
장점
HTTP프로토콜을 이용하여서 REST를 위해서 별도의 인프라를 구축할 필요가 없다.
HTTP프로토콜을 활용하는 모든 플랫폼에서 사용이 가능하다.
Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
서버와 클라이언트의 역활을 명확하게 분리한다.
단점
표준이 존재하지않는다.
사용할수있는 메소드가 4가지밖에 없다.
브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 값이 왠지 더 어렵게 느껴진다.
구형브라우저가 아직 제대로 지원 못할수도 있다.
제목 대로 URL는 정보의 자원을 표현해야하기 때문에 설계 할때 몇 가지 지켜야 할 것들이 있습니다.
1) 소문자를 사용한다.
2) 하이픈( - )을 사용한다.
3) 확장자를 사용하지 않는다.
http://foo.com/world.txt
http://foo.com/world.png
위와 같이 했을 때, 확장자에 때른 url을 만들어야 하기 떄문에 비효울적일 수 있다.
4) 밑줄( __ )은 사용하지 않는다.
아래가 대표적으로 사용하는 4가지 Mehtod이다.
HTTP Method | 역할 |
---|---|
GET | GET을 동해 해당 리소스를 조회합니다. |
POST | POST를 통해 해당 URL를 요청하면 리소스를 생성합니다. |
PUT | PUT을 통해 해당 리소스를 수정합니다. |
DELETE | DELETE를 통해 해당 리소스를 삭제합니다. |
예를 들어 글을 수정하기 위해선 아래와 같이 할 수 있다.
POST /posts/put/:id (X)
POST /posts/update/:id (X)
PUT /posts/:id (O)