카테고리 없음

Django_REST

멍주다배 2025. 1. 16.

REST(Representational State Transfer)

웹 서비스를 설계하는 아키텍처 스타일 중 하나로, 원칙과 특징을 가짐

  • 자원(Resource): 모든 것은 자원으로 표현되며, URI(Uniform Resource Identifier)를 통해 고유하게 식별
    • 예) /users/1 (사용자 ID가 1인 사용자)
  • 행위(Methods): HTTP 메서드를 사용하여 자원을 처리
    • GET: 조회
    • POST: 생성
    • PUT: 전체 수정
    • PATCH: 일부 수정
    • DELETE: 삭제
  • 표현(Representation): 자원의 상태는 JSON, XML, HTML 등의 형식으로 전송
{
  "id": 1,
  "name": "John Doe",
  "email": "john@example.com"
}

 

  • 설계 원칙
    • 클라이언트-서버 구조: 클라이언트와 서버는 서로 독립적으로 작동하며, 클라이언트는 자원을 요청하고 서버는 이를 제공
    • 무상태: 서버는 클라이언트의 상태를 유지하지 않음
    • 캐시 가능: 자원의 응답은 캐시 가능해야 하며, 이를 통해 클라이언트 성능을 개선할 수 있음
    • 계층화, 통합된 인터페이스

RESTful API

REST의 원칙을 충실히 따르는 API로, 클라이언트와 서버 간의 데이터 교환을 표준화하여 이해하기 쉽고 유지보수가 용이한 인터페이스를 제공합니다.

  • 자원 기반 설계
  • HTTP 메서드 활용
  • 명사형 엔드포인트(자원 표시) 사용 - 예) /users (/getUsers -> X)
  • HTTP 상태 코드 사용
    • 200 OK: 요청 성공
    • 400 Bad Request: 잘못된 요청
    • 404 Not Found: 자원 없음
    • 500 Internal Server Error: 서버 오류
  • 계층적인 URI 구조 설계
  • 필터링 및 페이징 기능 제공