[TIL 30] REST APIs

yezo cha·2021년 6월 25일
0

HTTP/network

목록 보기
6/7
post-thumbnail

API의 대표적인 아키텍처인 REST API를 알아보고, Postman으로 HTTP 요청을 직접 실습(API 테스팅)해보자.

REST APIs

A REST API is an API that conforms to the design principles of the REST, or representational state transfer architectural style.
For this reason, REST APIs are sometimes referred to RESTful APIs.

What is REST ?

REST = Representational State Transfer.

HTTP URI를 통해 리소스를 명시하고, HTTP Method(POST, GET, PUT, PATCH, DELETE)를 통해 해당 리소스에 대한 CRUD Operation을 적용하는 것을 의미한다.

즉, REST어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI(Resource)로 요청을 보내는 것 으로 GET, POST등의 방식(Method)을 사용하여 요청을 보낸다.
요청을 위한 자원은 특정한 형태(Representation of Resouce)으로 표현된다.

그리고 이러한 REST 기반의 API를 웹으로 구현한 것RESTful API이다.
기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

REST 구성 = Resource(자원) + Method(행위) + Representation of Resource(자원의 형태).

  • Resource 자원
    모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
    자원을 구별하는 ID는 HTTP URI 이다.
    Client는 URI를 이용해서 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청한다.
  • Method 행위
    서버에 요청을 보내기 위한 방식.
    HTTP 프로토콜의 Method를 사용한다. (GET, POST, PUT, PATCH, DELETE)
    CRUD 처리를 위한 연산에 맞는 Method를 사용하여 서버에 요청을 보내야 한다.
  • Representation of Resource 표현
    Client가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보낸다.
    클라이언트와 서버가 데이터를 주고 받는 형태로, JSON, XML, TEXT, RSS 등 여러 형식의 데이터.

What is API ?

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

What is REST API ??

예를 들어, 게시글을 작성하기 위해 https://localhost:8080/board라는 URI에 POST방식을 사용해 JSON형태의 데이터를 전달할 수 있다.
CRUD 연산에 대한 요청을 할 때, 요청을 위한 Resource(자원, URI)와 이에 대한 Method(행위, POST), 그리고 Representation of Resource(자원의 형태, JSON)을 사용하면 표현이 명확해지므로 이를 REST라고 한다.
이러한 규칙을 지켜서 설계된 API를 REST API 또는 RESTful API라고 한다.

  • REST 기반으로 서비스 API를 구현한 것.
  • 최근 OpenAPI(누구나 사용할 수 있도록 공개된 API), 마이크로 서비스 등을 제공하는 대부분의 업체는 REST API를 제공한다.
  • CRUD Operation
    • Create : POST(생성)
    • Read : GET(조회)
    • Update : PUT | PATCH (수정)
    • Delete : DELETE(삭제)
    • HEAD : HEAD(header 정보 조회)

REST API: Key Concepts, Best Practices, and Benefits
REST란? REST API란? RESTful이란?

profile
(ง •̀_•́)ง

0개의 댓글