728x90
REST API의 탄생
- REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 처음 소개 되었습니다.
- 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다.
REST 구성
- 자원(RESOURCE)-URI
- 행위(Verb) - HTTP METHOD
- 표현(Representations)
REST API는 무엇인가?
- REST는 프로토콜이나 표준이 아닌 아키텍처 원칙 세트입니다.
- REST API란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다.
REST의 특징
- Uniform(유니폼 인터페이스)
- Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다.
- 안드로이드나 ios등과 같은 플랫 폼이나 언어에 종속되지 않고 HTTP를 사용할 수 있는 모든 플랫폼에 사용이 가능한 느슨한 결합 형태의 구조 이다.
- Stateless(무상태성)
- REST는 무상태성 성격을 갖습니다. 즉, 작업을 위한 상태정보를 따로 저장하고 관리하지 않습니다.
- 세션 정보나 쿠키 정보를 별도로 저장하고 관리 하지 않기 때문에 API 서버는 들어오는 요청만을 단순히 처리하면 됩니다.
- 때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다.
- Cacheable(캐시 가능)
- REST의 가장 큰 특징 중 하나는 HTTP라는 기존 웹표준을 그대로 사용하기 때문에, 웹에서 사용하는 기존 인프라를 그대로 활용이 가능합니다. 따라서 HTTP가 가진 캐싱 기능이 적용 가능합니다.
- HTTP 프로토콜 표준에서 사용하는 Last-Modified태그나 E-Tag를 이용하면 캐싱 구현이 가능합니다.
- Self-descriptiveness(자체 표현 구조)
- REST의 또 다른 특징 중 하나는 REST API메세지만 보고도 이를 쉽게 이해 할 수 있는 자체 표현 구조로 되어 있습니다.
- Client-Server 구조
- REST 서버는 API제공, 클라이언트는 사용자의 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어들게 됩니다.
- 계층형 구조
- REST 서버는 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 합니다.
REST API 디자인 가이드
REST API 설계시 가장 중요한 항목은 다음의 2가지로 요약 할 수 있습니다.
- URI는 정보의 자원을 표현해야 한다.
- 리소스명은 동사보다 명사를 사용 해야 합니다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
URI는 자원을 표현하는 데에 집중하고 행위에 대한 정의는 HTTP METHOD를 통해 하는 것이 REST한 API를 설계하는 중심 규칙입니다.
설계시 주의할 점
- URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
- 하이픈(-)은 URI 가독성을 높이는데 사용
- 밑줄(_)은 사용하지 않는다.
- URI경로에는 소문자가 적합하다.
- 파일 확장자는 URI에 포함시키지 않는다.
참고 링크
https://www.redhat.com/ko/topics/api/what-is-a-rest-api
REST API(RESTful API, 레스트풀 API)란 - 서버, 구현, 사용법
REST API(RESTful API)란 REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻합니다. api 서버, rest api 구현 및 사용법을 설명합니다.
www.redhat.com
https://meetup.toast.com/posts/92
REST API 제대로 알고 사용하기 : NHN Cloud Meetup
REST API 제대로 알고 사용하기
meetup.toast.com
https://araikuma.tistory.com/340
REST API란?
REST는 Representational State Transfer라는 용어의 약자로서 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 2000년도에 로이 필딩 (Roy Fielding)의 박사학
araikuma.tistory.com
'HTTP' 카테고리의 다른 글
TCP와 UDP 차이 (0) | 2021.12.06 |
---|---|
URL 과 URI 차이 (0) | 2021.12.05 |