개인 공부/GarbageCollector

RESTful API 개념

kaleb 2023. 3. 15. 11:00
728x90

안녕하세요 미어켓입니다.

두 컴퓨터 시스템 사이에서 HTTP를 통해 정보를 안전하게 교환하게 위해 사용되는

RESTful API의 개념에 대해 공부하면서 정리를 해 보았습니다. 


 

RESTful API 에 대해 알아보기 이전에

REST는 무엇인지 알아봅시다

REST : Representational State Transfer

API 작동 방식에 대한 조건을 부과하는 아키텍처로 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어짐

REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로지원할 수 있습니다.

REST 서비스의 경우 서버는 일반적으로 URL을 사용하여 리소스를 식별하고 수행합니다.

URL 은 요청 엔드포인트라고도 하며 요구하는 사항을 서버에 명확하게 지정합니다.

개발자는 HTTP를 사용하여 RESTful API를 구현합니다.

 

  • GET : 클라이언트는 GET 을 사용하여 서버의 지정된 URL에 있는 리소스에 엑세스합니다. (RESTful API 요청에 파라미터를 넣어 전송하여 전송 전에 데이터를 필터링 하도록 지시할 수 있음)
  • POST : 클라이언트는 POST를 사용하여 서버에 데이터를 전송합니다.
  • PUT : 클라이언트는 PUT을 통해 서버의 기존 리소스를 업데이트 할 수 있습니다.
  • DELETE : 클라이언트는 DELETE 요청을 통하여 리소스를 제거합니다.

HTTP 헤더 :

클라이언트와 서버 간에 교환되는 메타 데이터로 요청/응답의 형식을 나타내고 요청 상태에 대한 정보를 제공합니다.

⇒ HTTP URL을 통해 자원(Resouce)를 명시하고, HTTP Method(GET, POST, PUT, DELTE) 를 통해 해당 자원에 대한 CRUD를 적용하는 방

REST의 특징 :

  • Server - Cient 구조 :Client : 사용자인증, context(세션, 로그인 정보) 를 직접 관리하고 책임, 자원을 요청
  • REST Server : API를 제공하고 비즈니스 로직처리 및 저장, 자원을 가지고 있음
  • Stateless :Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리
    (이전 요청과 다음 요청에 대한 연관성이 없음)
  • Client의 context를 Server에 저장하지 않기 때문에 세션과 쿠키와 같은 정보에 대해 신경 쓰지 않아도 됨
  • Cacheable : HTTP의 가장 강력한 특징인 캐싱 기능을 적용할 수 있음
  • (Last-Modified태그나 E-Tag를 이용하여 캐싱이 구현가능)
  • Layered System
  • Code-on-Demand
  • Uniform Interface

 

간단히 REST는 통신 관리 아키텍처로 생각하면 될까요?

이러한 REST를 기반으로 두 컴퓨터 시스템에서 HTTP를 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스가 

바로 RESTful API입니다.

 

RESTful API :

두 컴퓨터 시스팀에 HTTP 를 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스로

  • 리소스들은 특정한 URL을 통해 식별됨
  • HTTP 동사들(GET, POST, PUT, DELETE)를 수행합니다.
  • 내용들은 표준화된 형태로 보여집니다.(JSON, XML…)

※  API : 애플리케이션 프로그래밍 인터페이스는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. (애플리케이션간의 상호작용/소통/커뮤니케이션)

 

REST API 설계 예시

CRUD HTTP verbs Route
resource들의 목록을 표시 GET /resource
resource 하나의 내용을 표시 GET /resource/:id
resource를 생성 POST /resource
resource를 수정 PUT /resource/:id
resource를 삭제 DELETE /resource/:id

참고 :

반응형

'개인 공부 > GarbageCollector' 카테고리의 다른 글

Mybatis  (0) 2023.02.02
로드 밸런스(Load_Balancing)  (0) 2023.01.31
데이터베이스 언어  (0) 2023.01.05