코딩/HTTP, 네트워크

[HTTP/네트워크] REST API

2워노 2023. 5. 25. 12:01

⚡ REST 가 뭘까..?

  • REST는 Representational State Transfer의 약자이다.
  • 각 단어의 뜻을 풀어보면, 
  • Representational => 표현, 묘사
  • State => 상태
  • Transfer => 전송
  • 즉, (웹 어플리케이션의) 어떠한 상태(정보)를 전송하는 표현방식이라고 할 수 있다.

 ❗️ REST를 한마디로 정의하면

  • HTTP라는 프로토콜(규약, 규칙)을 이용하여, Web에서 제공하는 모든 자원들을 하나하나 가르킬수 있는
  • 고유한 주소(URI)를 이용하여
  • HTTP Method를 통해 작업(CRUD)을 하는 방식을 말한다.
  • Web에서의 통신 = HTTP 프로토콜을 이용한 통신
    1. 클라이언트의 웹브라우저에서 주소(URI)를 입력
    2. 웹브라우저가 주소를 이용해 HTTP request 메세지 전송
    3. 웹서버는 주소와 매핑된 서버 내 문서나 프로그램을 찾아서 작업(CRUD)을 처리
    4. 처리 후 웹서버에서는 HTTP response 메세지를 클라이언트 웹으로 전송
    5. 클라이언트 웹브라우저는 받은 메세지는 웹브라우저에 맞게 변환하여 표시

 

⚡ REST의 구성요소

🟢 자원 (Resource)

  • 웹서버가 관리 하는 모든것
  • 자원은 URI을 통해 고유한 주소로 지정하여 식별

🟢 자원 조작 (Verb)

  • HTTP 프로토콜에 있는 Method를 통해 CRUD를 처리
  • Method: GET, POST, PUT, DELETE

🟢 표현  (Representation)

  • 클라이언트는 자원의 상태(정보)를 조작하는 요청(request)을 하고,
  • 서버는 요청을 처리하고 response를 보냄
  • 자원은 TEXT, JSON, XML 등의 타입이 있으나, 대부분은 JSON 형태를 선호함

 

⚡ 그러면 REST API는 무엇일까?

🟣 API란?

  • API는 응용프로그램들 사이에서 데이터를 주고받는 방법으로, 프로그램과 소통하게 해주는 인터페이스이다.
  • 즉,  API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체라고 할 수있다.
  • (클라이언트나 서버같이 서로 다른 프로그램끼리 데이터를 주고받는 방법 혹은 규격)

🟣 REST API

  • REST는 HTTP를 잘 활용하기 위한 원칙이며, REST API는 이 원칙을 준수하여 만든 API이다.
  • (HTTP 프로토콜의 URI 주소를 이용하여 서버의 기능을 처리하게 하는 것)

🟣 HTTP를 잘 활용하기 위한 원칙은?

  • URI로 자원을 표현하는데 집중하고, 자원의 상태에 대한 정의는 HTTP Method로 하는 것이 API 설계의 중심 규칙
  • RESTful 한 설계의 중심규칙 2가지
    1. URI로 자원(리소스) 표현
    2. 자원에 대한 행위는 HTTP Method로 표현

< HTTP / REST API Method >

HTTP Verb REST API Method 설명
POST Create 생성
GET Read 읽기
PUT Update 전체 변경
PATCH Update 부분 변경
DELETE Delete 삭제
GET /users/delete/1
// 위와 같은 방식은 REST를 제대로 적용하지 않은 URI이다. URI는 자원을 표현하는데 중점을 두어야 한다. delete와 같은 행위에 대한 표현이 들어가서는 안된다.

// 위의 잘못된 URI를 HTTP Method를 통해 수정
DELETE /users/1
 

// 회원정보를 가져오는 행위는 GET, 회원 추가 시의 행위를 표현하고자 할 때는 POST METHOD를 사용하여 표현한다.

// 회원정보를 가져오는 URI
GET /users/read/1     (x)
GET /users/1          (o)


//회원을 추가할 때
GET /users/insert/2 (x)  // GET 메서드는 리소스 생성에 적절치 않음
POST /users/2       (o)