티스토리 뷰

Knowledge

REST API 와 GET, POST, PUT, DELETE, PATCH

구일일구 2023. 8. 16. 10:54
반응형

REST API

REST API란 REST를 기반으로 만들어진 API를 의미

 

 

REST란

REST (Represnetational State Transfer)의 약자

자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미함

  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)를 명시하고
  • HTTP Method(GET, POST, PUT, DELETE, PATCH)를 통해
  • 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미함
더보기

CRUD Operation

  • Create : 데이터 생성 (POST)
  • Read : 데이터 조회(GET) 
  • Update : 데이터 수정(PUT, PATCH)
  • Delete : 데이터 삭제(DELETE)

 

REST 구성 요소

1. 자원(Resource) : HTTP URI

2. 자원에 대한 행위(Verb) : HTTP Method

3. 자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load

 

REST의 특징

1. Server - Client : 서버-클라이언트 구조

2. Stateless : 무상태

3. Cacheable : 캐시 처리 가능

4. Layered System : 계층화

5. Uniform Interface : 인터페이스 일관성

 

REST 장단점

장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없음
  • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있음
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용 가능
  • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있음
  • 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소화함
  • 서버와 클라이언트의 역할을 명확하게 분리함

 

단점

  • 표준 자체가 존재하지 않아 정의가 필요함
  • HTTP Method 형태가 제한적
  • 브라우저를 통해 테스트할 일이 많은 서비스라면, 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 하므로 전문성이 요구됨
  • 구형 브라우저에서 호환이 되지 않음(익스플로어)

REST API

API 또는 응용 프로그래밍 인터페이스는 서로 다른 응용 프로그램 간의 상호 작용 및 통신을 허용하는 기능과 규칙을 제공API는 요청과 응답을 통해 애플리케이션 사이를 중재함

더보기
API 의 프로토콜과 아키텍처

 

1. XML-RPC :: 네트워크 간의 기능 교환을 허용함. XML을 사용하여 클라이언트에서 서버로 정보를 전송하기 위한 응답/요청 및 HTTP 프로토콜을 설명함2. JSON-RPC :: XML과 유사한 경량 RPC. 프로토콜은 JSON으로 인코딩됨. 비동기응답으로 서버에 대한 호출을 수신할 수 있음3. SOAP :: 네트워크에서 서비스를 구현할 때 구조화된 정보를 교환하기 위한 간단한 개체 엑세스 프로토콜. SOAP은 운영 체제에서 인증, 권한 부여 및 프로세스 통신을 위해 XML을 사용함4. REST API :: 클라이언트-서버 구현을 독립적으로 사용하는 아키텍처 스타일. REST는 통신에 HTTP 프로토콜을 사용함

RESTful API

RESTful이란 REST의 원리를 따르는 시스템을 의미함REST를 사용했다하여 모두가 RESTful한것은 아님REST API의 설계 규칙을 올바르게 지킨 시스템을 RESTful하다 말할 수 있음



HTTP Method (GET, POST, PUT, DELETE, PATCH 등)

 

1. GET Method

GET은 보통 조회를 할 때 사용함 => SELECT에 해당

 

2. POST Method

POST는 보통 데이터를 추가할 때 사용한다 => INSERT에 해당

 

3. PUT Method

PUT은 데이터를 수정할 때 사용함 => UPDATE에 해당

수정하고 싶은 정보를 PUT으로 요청함 : POST와 동일한 URL로 요청하더라도, HTTP 메소드가 다르기 때문에 다르게 동작함

 

4. DELETE Method

DELETE는 데이터를 삭제할 때 사용함 => DELETE에 해당

반응형
댓글