Network
Rest API

REST API에 대해 설명해주세요

REST

RESTREpresentational State Transfer를 의미한다. REST API에 대해 알아야 할 것은 모두 통신에 관한 것이다.

"restful web service"는 통신을 위해 REST API를 사용하는 서비스이다.

왜 나왔는가?

Q. 어떻게 인터넷에서 정보를 공유할 것인가? A. 정보들을 하이퍼텍스트로 연결한다.

  • 표현 방식: HTML
  • 식별자: URI
  • 전송 방법: HTTP

웹을 망가뜨리지 않고 HTTP를 진보시킬 수 있을까?

-> HTTP Object Model

이후에 REST로 변경된다.

API

SOAP

REST API

REST는 분산 하이퍼미디어 시스템(ex: web)을 위한 아키텍처 스타일이다.

REST를 구성하는 스타일

  • client-server
  • stateless
  • cache
  • uniform interface
  • layered system
  • code-on-demand (optional)

Uniform Interface의 제약조건

Self-descriptive message

HATEOAS

독립적 진화

  • 서버와 클라이언트가 각각 독립적으로 진화
  • 서버의 기능이 변경되어도 클라이언트를 업데이트할 필요가 없음
  • REST를 만들게 된 계기: "웹을 망가뜨리지 않고 HTTP를 진보시킬 수 있을까?"

  • 웹 페이지를 변경했다고 웹 브라우저를 업데이트할 필요는 없음
  • 웹 브라우저를 업데이트했다고 웹 페이지를 변경할 필요도 없음
  • HTTP 명세가 변경되어도 웹은 잘 동작
  • HTML 명세가 변경되어도 웹은 잘 동작

REST API의 이점

REST API는 커뮤니케이션에 대한 간단하고 표준화된 접근 방식이다.

확장 가능하고 stateless하다.

stateless

REST 아키텍처는 클라이언트의 상태가 서버에 저장되지 않는다. 매 요청마다 모든 필요한 정보를 포함해야 한다.

GPT로 문장 정리하기

REST API에 대해 설명해줘

  • REST(Representational State Transfer)는 웹 서비스 아키텍처의 한 형태로
  • 자원을 표현하고 자원에 대한 상태를 전송하는 방법을 정의
  • 주요 특징은 다음과 같음
    • 자원(Resource): 모든 자원은 고유한 식별자(URI) 소유. 자원은 서버에 존재하며 URI를 통해 자원을 식별하고 요청
    • 표현(Representation): 자원의 상태는 여러 형태로 표현. 클라이언트가 원하는 형태의 표현을 요청하고 서버는 해당 형태로 응답
    • 무상태(Stateless): 각 요청은 클라이언트의 상태를 서버에 저장하지 않음. 모든 정보를 요청 자체에 포함하여 처리.
    • 통합(Uniform Interface): 일관된 인터페이스를 제공. 자원에 대한 표현을 통일되게 다루고 URI를 통해 자원을 식별하며 메시지를 통해 자원과 상태에 대한 조작
  • HTTP 메서드를 사용하여 자원에 대한 다양한 조작 표현
    • GET, POST, PUT, DELETE
  • 간결하고 일관된 설계로 이해하기 쉬움
  • 다양한 클라이언트와 서버 간의 통신을 간소화하고, 웹 서비스를 효율적으로 개발

키워드 정리

  • Stateless
  • HTTP Method
  • HTTP Status Code

참고 자료