반응형
REST API
- 대중적으로 가장 많이 사용된 애플리케이션 인터페이스
- 이 인터페이슬르 통해 클라잉너트는 서버에 접근하고 자원을 조작할 수 있다.
REST란?
- Representational State Transfer의 약자로 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템 아키텍처의 한 형식
- 주고 받는 자원(Resource)에 이름을 규정하고 URI에 명시해 HTTP 메서드(GET, POST, PUT, DELETE)를 통해 해당 자원의 상태를 주고 받는 것을 의미
REST API란?
- API는 Application Programming Interface의 약자로 애플리케이션에서 제공하는 인터페이스를 의미
- API를 통해 서버 또는 프로그램 사이를 연결할 수 있다.
- REST API는 REST 아키텍처를 따르는 시스템/애플리케이션 인터페이스라고 볼 수 있다. REST 아키텍처를 구현하는 웹 서비스 == RESTful 하다 라고 표현된다.
REST의 특징
1. 유니폼 인터페이스
- 일관된 인터페이스를 의미
- REST 서버는 HTTP 표준 전송 규약을 따르기 때문에 어떤 프로그래밍 언어로 만들어졌느냐와 상관 없이 플랫폼 및 기술에 종속되지 않고 타 언어, 플랫폼, 기술 등과 호환해 사용할 수 있다는 것을 의미
2. 무상태성
- REST는 무상태성(stateless) 특징을 가진다.
무상태성이란?
서버에 상태 정보를 따로 보관하거나 관리하지 않는다는 의미
- 서버는 클라이언트가 보낸 요청에 대해 세션이나 쿠키 정보를 별도로 보관하지 않는다. 그렇기에 한 클랑이언트가 여러 요청을 보내든 여러 클라이언트가 각각 하나의 요청을 보내든 개별적으로 처리
- 이렇게 구성된 서비스는 서버가 불필요한 정보를 관리하지 않아 비즈니스 로직의 자유도가 높고 설계가 단순
3. 캐시 가능성
- REST는 HTTP 표준을 그대로 사용하므로 HTTP의 캐시 기능을 적용할 수 있다.
- 이 기능을 이용하기 위해서는 응답과 요청이 모두 캐싱 가능한지 명시가 필요하며 캐싱이 가능한 경우 클라이언트에서 캐시에 저장해두고 같은 요청에 대해서는 해당 데이터를 가져다 사용한다.
- 기 기능을 사용하면 서버의 트랜잭션 부하가 줄어 효율적
4. 레이어 시스템
- Rest 서버는 네트워크 상의 여러 계층으로 구성될 수 있다. 그러나 서버의 복잡도와 관계없이 클라이언트는 서버와 연결되는 포인ㅌ트만 알면 된다.
5. 클라이언트-서버 아키텍처
- Rest 서버는 API를 제공하고 클라이언트는 사용자 정보를 관리하는 구조로 분리해 설계한다.
URL 규칙
- URL의 마지막에는 ‘/’을 포함하지 않는다.
- 언더바(_)는 사용하지 않는다 대신 하이픈(-)을 이용
- URL에는 행위(동사)가 아닌 결과(명사)를 포함한다.
옳은 예 -> <http://localhost.com/product/123>
잘못된 예 -> <http://localhost.com/delete-product/123>
행위는 HTTP 메서드로 표현할 수 있어야한다.
- URL는 소문자로 작성해야한다.
- 일부 웹 서버의 운영체제는 리소스 경로 부분의 대소문자를 다른 문자로 인ㅅ기하기 때문
- 이러한 이유로 RFC 3986은 URL 문법 형식을 정의하고 있는데, 호스트의 구성 요소를 제외하고 URL의 대소문자를 구분해서 정의하고 있다.
- 파일의 확장자는 URL에 포함하지 않는다.
- HTTP에서 제공하는 Accept 헤더를 사용
반응형