본문 바로가기
인턴/준비

What is a REST API

by 사향낭 2023. 1. 7.
 

What is a REST API? | IBM

In this guide, you’ll learn how REST APIs, an architectural style for managing networked applications, can ease software development processes.

www.ibm.com

 

API는 무엇인가?

 

Application Programming Interface의 약자로 둘 이상의 computer program간 소통을 할 수 있는 방법을 정의한 규칙의 집합이다.

 

API를 통해 어떤 system에 resource를 요청하고 그에 대한 응답을 받을 수 있다.

(물론 system이 필요한 정보를 제공하는 API를 서비스하고 있다면)

 

resource를 요청하는 측을 client, 제공하는 측을 server라 한다.

 

예를 들어 Google Books APIs는 Google Books service 안에서의 도서 검색이나 bookshelf를 비우는 등의 요청을 할 수 있는 method를 지원한다. 

 

 

REST는 무엇인가?

 

https://www.opc-router.com/what-is-rest/

 

REST는 REpresentational State Transfer의 약자로 distributed hypermedia system을 위한 architectural style 이다.

 

여섯가지 규칙들을 묶은 집합이라 볼 수 있다.

 

  1. Uniform Interface
    • 같은 resource에 대한 모든 API request는 같은 형태여야 한다.
    • user의 이름, 이메일과 같은 data는 오직 하나의 Uniform Resource Identifier(URI)에 속함이 보장되어야 한다.
    • resource는 client가 필요한 정보를 모두 포함하고 있으면서 너무 크지 않아야 한다.
  2. Client-server decoupling
    • client와 server는 독립적이어야 한다.
    • client는 오직 요청하는 resource의 URI만 알아야 하고 server는 요청받은 resource만을 HTTP를 통해 전달할 뿐이다.
  3. Statelessness
    • 각 request는 이 request를 처리하기 위한 모든 정보를 포함하고 있어야 한다.
    • server side에서 client의 request에 대한 정보를 저장하고 있다던가의 일은 일어나선 안된다.
  4. Cacheability
    • 가능하다면 resource는 cilent side든 server side든 cacheable 해야한다.
    • server의 response는 전달된 resource의 caching이 허용되는지에 대한 정보를 포함해야 한다.
  5. Layered sysytem architecture
    • call과 response는 여러 layer를 통과한다.
    • client와 server가 직접적으로 연결되어있다고 가정하면 안된다.
    • 이들 사이에 몇몇 중간자들이 있다.
      (인증, 보안, load balancing 등의 기능을 더할 수 있음) 
  6. Code on demand (optional)
    • 일반적으로 static resource를 보내지만 executable code를 포함할 수도 있다.
    • 이러한 경우 code는 오직 on-demand로 실행되어야 한다.

 

 

REST API는 어떻게 동작하는가

 

https://www.opc-router.com/what-is-rest/

 

REST를 따르는 API를 REST API 혹은 RESTful API라 부른다.

 

REST API는 HTTP로 소통하며 일반적인 database 기능들을 수행한다.

(Creating, Reading, Updating, Deleting, a.k.a. CRUD)

 

https://www.opc-router.com/what-is-rest/

 

GET : record를 찾을 때 (reading)

POST : record를 만들 때 (creating)

PUT : record를 갱신할 때 (updating)

DELETE : record를 삭제할 때 (delete)

 

특정한 시간의 resource state를 resource representation이라 부르는데 이 정보는 client에 JSON, HTML, XLT, Python, PHP, 평문 등의 형식으로 전달될 수 있다.

 

REST API call에서 request header와 parameter는 중요한데 이들이 중요한 식별 정보를 포함하고 있기 때문이다.

(metadata, authorization, URIs, caching, cookies, ...)

'인턴 > 준비' 카테고리의 다른 글

Go Language #2  (0) 2023.01.06
Git #4 Branching  (0) 2022.12.31
Git #3 Revert, reset and restore  (0) 2022.12.30
Git #2 Basics  (1) 2022.12.29
Git #1 Origins story and terms  (0) 2022.12.27

댓글