포도가게의 개발일지

Restful API? 본문

Restful API?

grape.store 2022. 1. 18. 22:58
반응형
- RESTful API라는 말은 REST 아키텍처 원칙을 모두 만족하는 API라는 뜻입니다.

 

- 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

why?

  • ‘다양한 클라이언트의 등장’으로 (멀티 플랫폼) 웹서버의 자원을 클라이언트에 구애받지 않고 사용할수있게하는 설계방식 응답은 특정 기기의 종속되지 않도록 모든기기에서 통용될수있도록 화면이 아닌 오직 데이터로 반환한다

how?

  1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
  2. HTTP Method(POST, GET, PUT, DELETE)를 통해
  3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다.
  4. URI로 주어나 목적어를 만들고, http method로 동사를 만든다

REST 구성 요소

  1. 자원(Resource) : HTTP URI
  2. 자원에 대한 행위(Verb) : HTTP Method
  3. 자원에 대한 행위의 내용 (Representations) : HTTP Message Pay Load

REST의 특징

  1. Server-Client(서버-클라이언트 구조)
    - 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어들게 됩니다.
  2. Stateless(무상태)
    - API 서버는 들어오는 요청만을 단순히 처리하면 됩니다. 때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다.
  3. Cacheable(캐시 처리 가능)
  4. Layered System(계층화)
    - 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 합니다.
  5. Uniform Interface(인터페이스 일관성)
    - 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다.

API(Application Programming Interface)란?

  1. 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것

 

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