포도가게의 개발일지
Restful API? 본문
반응형
- RESTful API라는 말은 REST 아키텍처 원칙을 모두 만족하는 API라는 뜻입니다.
- 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.
why?
- ‘다양한 클라이언트의 등장’으로 (멀티 플랫폼) 웹서버의 자원을 클라이언트에 구애받지 않고 사용할수있게하는 설계방식 응답은 특정 기기의 종속되지 않도록 모든기기에서 통용될수있도록 화면이 아닌 오직 데이터로 반환한다
how?
- HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
- HTTP Method(POST, GET, PUT, DELETE)를 통해
- 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다.
- URI로 주어나 목적어를 만들고, http method로 동사를 만든다
REST 구성 요소
- 자원(Resource) : HTTP URI
- 자원에 대한 행위(Verb) : HTTP Method
- 자원에 대한 행위의 내용 (Representations) : HTTP Message Pay Load
REST의 특징
- Server-Client(서버-클라이언트 구조)
- 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어들게 됩니다. - Stateless(무상태)
- API 서버는 들어오는 요청만을 단순히 처리하면 됩니다. 때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다. - Cacheable(캐시 처리 가능)
- Layered System(계층화)
- 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 합니다. - Uniform Interface(인터페이스 일관성)
- 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다.
API(Application Programming Interface)란?
- 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것
how?
- URI는 명사를 사용한다.
- 슬래시로 계층 관계를 표현한다.
- URI의 마지막에는 슬래시를 붙이지 않는다.
- URI는 소문자로만 구성한다.
- 가독성이 떨어지는 경우 하이픈을 사용한다.
장점
- Open API를 제공하기 쉽다.
- 멀티플랫폼 지원 및 연동이 용이하다.
- 원하는 타입으로 데이터를 주고 받을 수 있다.
- 기존 웹 인프라(HTTP)를 그대로 사용할 수 있다.
단점
- REST는 표준이 없습니다.("표준이 없는데 안티패턴인지 아닌지는 어떻게 구분하지?")
대책 : 제대로 된 REST API 표준 가이드와, API 개발 전후로 API 문서를 제대로 만들어서 리뷰하는 프로세스를 갖추는 방법으로 해결하는 방법이 현재로서는 가장 좋은 방법입니다. - 분산환경에는 부적합하다.
- HTTP 통신 모델에 대해서만 지원한다.
'웹' 카테고리의 다른 글
[Web] Blob (0) | 2022.03.26 |
---|---|
[Web] SSE(Server Sent Event) (0) | 2022.03.26 |
Socket vs WebSocket vs Socket.IO? (0) | 2021.11.26 |
Flask pyJWT token 사용법 (0) | 2021.07.30 |
url parameter 주고 받는법 (0) | 2021.07.27 |
Comments