REST
WHAT
- Representational State Transfer
- 설계 기본 규칙으로
1. URL를 통해 자원을 명시하고
2. HTTP method(GET, POST, PUT, DELETE)를 통해 자원을 처리하도록
설계된 아키텍처 - 구성: URI, HTTP Method, Payload(HTTP Request에서 보내는 데이터)
- RESTful: REST 아키텍처를 구현하는 웹 서비스를 나타내는 것
WHY
- Self-Descriptiveness(자체 표현 구조): RESTful API 그 자체만으로 API의 목적이 쉽게 이해가 간다.
- 웹의 장점을 최대한 활용할 수 있는 Client와 Server 간 통신 방식 중 하나
→ 웹: 인터넷 상에서 텍스트나 멀티미디어 정보를 하이퍼 텍스트방식으로 연결하여 제공
HOW
목적에 맞는 HTTP Method를 사용한다.
[ GET ]
- 요청하는 데이터가 HTTP Request Message의 Header 부분의 URL에 담겨서 전송된다.
→ URL이라는 공간에 담겨있기 때문에 전송할 수 있는 데이터의 크기가 제한적
→ 또 보안이 필요한 데이터에 대해서는 데이터가 그대로 URL에 노출되므로 GET 방식은 적절하지 않다. - 서버에서 어떤 데이터를 가져와서 보여주는 용도
- GET 요청은 브라우저에서 Caching할 수 있다.
[ POST ]
- HTTP Message의 Body 부분에 데이터가 담겨서 전송된다.
- 서버의 값이나 상태를 변경하거나 추가하기 위해서 사용
URI 작성법
- 슬래시(/) 는 계층 관계를 나타낼 때 사용
- URI 마지막 문자로 슬래시를 포함하지 않는다.
- 하이픈(-)은 URI 가독성을 높이는데 사용한다.
- 밑줄(_)은 URI에 사용하지 않는다.
- 경로에는 소문자가 적합