본문 바로가기
  • 어서오세요.
  • 안녕하세요~
backend

RESTful API 란?

by ozero 2024. 7. 2.

RESTful(Representational State Transfer)은 웹 서비스 디자인을 위한 아키텍처 스타일로, 네트워크 상에서 자원을 정의하고 자원에 대한 상태를 주고받는 방식을 규정합니다. RESTful은 HTTP 프로토콜을 기반으로 하며, 다음과 같은 원칙들을 따릅니다.

REST의 핵심 원칙

  1. 자원(Resource):
    • 모든 자원은 고유한 URI(Uniform Resource Identifier)로 식별됩니다. 예를 들어, https://api.example.com/users/123는 ID가 123인 사용자 자원을 식별합니다.
  2. 표현(Representation):
    • 클라이언트는 자원에 대한 정보를 JSON, XML 등의 형태로 요청하고 받을 수 있습니다. 자원의 상태는 이 표현을 통해 전달됩니다.
  3. 상태 전달(Stateless):
    • 각 요청은 독립적이며, 서버는 클라이언트의 이전 요청을 기억하지 않습니다. 모든 필요한 정보는 요청에 포함되어야 합니다.
  4. HTTP 메서드:
    • 자원에 대한 작업은 HTTP 메서드를 사용하여 표현됩니다. 주요 HTTP 메서드는 다음과 같습니다:
      • GET: 자원의 조회.
      • POST: 자원의 생성.
      • PUT: 자원의 전체 업데이트.
      • PATCH: 자원의 부분 업데이트.
      • DELETE: 자원의 삭제.
  5. 서버-클라이언트 구조:
    • 클라이언트와 서버는 명확하게 구분되어 있으며, 서로 독립적으로 진화할 수 있습니다. 클라이언트는 서버의 자원을 요청하고, 서버는 요청에 대한 응답을 제공합니다.
  6. 캐시(Cache):
    • 서버 응답은 캐시될 수 있어야 하며, 이를 통해 성능을 향상시킬 수 있습니다. 응답에는 캐시 가능한지 여부를 나타내는 헤더가 포함됩니다.

RESTful API 설계 예시

예를 들어, 간단한 블로그 애플리케이션의 RESTful API를 설계할 때는 다음과 같은 엔드포인트를 가질 수 있습니다:

  • GET /posts: 모든 블로그 포스트 조회.
  • GET /posts/1: ID가 1인 블로그 포스트 조회.
  • POST /posts: 새로운 블로그 포스트 생성.
  • PUT /posts/1: ID가 1인 블로그 포스트 전체 업데이트.
  • PATCH /posts/1: ID가 1인 블로그 포스트 부분 업데이트.
  • DELETE /posts/1: ID가 1인 블로그 포스트 삭제.

이러한 설계는 클라이언트가 HTTP 메서드와 URI를 통해 서버 자원에 접근하고, 자원의 상태를 변경하거나 조회할 수 있도록 합니다.

RESTful은 단순하면서도 유연한 아키텍처 스타일로, 웹 서비스 개발에서 널리 사용되고 있습니다. 이를 통해 클라이언트와 서버 간의 상호작용을 표준화하고, 시스템의 확장성과 유지보수성을 높일 수 있습니다.

'backend' 카테고리의 다른 글

2024년도 백엔드 웹,앱 프레임워크 추천!  (0) 2024.07.02
Express springboot Django nest.js 장단점  (0) 2024.07.02