REST API

강은비·2021년 10월 31일
0

Network

목록 보기
3/14
post-thumbnail

API

Application Programming Interface

  • 응용 프로그램 (애플리케이션)에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 말한다.
  • 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.

API를 레스토랑에 빗대어 표현하자.

  • 손님(애플리케이션)이 자리에 앉아 웨이터(API)에게 주문을 한다. 웨이터는 주문 내역을 주방(API 제공자)에게 가져다 준다. 주방에서 요리를 해 웨이터에게 주면 웨이터가 손님에게 음식을 가져다준다.
  • 웨이터(API)가 손님의 주문을 주방으로 전달하는 매개체 역할을 하는 것이다.
  • 이때 손님은 주방에서 무슨 일이 일어나는지 잘 모르고 관심이 없을 것이다. 내가 쓰려는 API의 기능이 어떻게 구현하는지 몰라도 되고 그저 사용하면 된다.
  • API는 외부 데이터에 접근하고 시스템과 상호작용할 수 있게 해준다.

REST

Representational State Transfer

REST 개념

자원을 고유한 이름으로 구분하여 해당 자원의 상태 및 정보를 주고 받는 모든 것

  • 자원은 소프트웨어가 관리하는 모든 것을 말한다. (문서, 그림, 데이터, 소프트웨어 자체 등)
  • 자원을 표현하기 위해 고유한 이름이나 ID를 붙인다
  • 자원이 요청되면 자원의 상태/정보를 전달한다.

REST 구성요소

  • 자원 (Resource): URI
    • 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
    • 자원을 구별하는 ID는 /groups/:group_id와 같은 URI이다.
    • Client는 URI를 이용해서 자원을 지정하고 해당 자원에 대한 행위을 Server에 요청한다.
  • 행위 (Verb): HTTP Method (자원에 대한 행위)
    • HTTP 프로토콜의 Method를 사용한다.
    • HTTP 프로토콜은 GET, POST, PUT, DELETE 등의 메서드를 제공한다.
    • CRUD Operation
      • Create : 생성(POST)
      • Read: 조회(GET)
      • Update : 수정(PUT)
      • Delete : 삭제(DELETE)
  • 표현 (Representation of Resource)
    • Client가 자원에 대한 행위을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다.
    • 자원은 JSON, XML, TEXT, RSS 등 여러 형태로 나타낼 수 있다. JSON 형식의 데이터를 주고 받는 것이 일반적이다.

REST API

  • REST의 원리를 따르는 API
  • 최근 OpenAPI (누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스 (하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공한다.

참고: [Network] REST란? REST API란? RESTful이란

0개의 댓글