1. RESTful API
RESTful API는 웹 애플리케이션 간의 데이터 교환을 위한 표준화된 설계 원칙을 기반으로 한 API
REST는 Representational State Transfer의 약자
자원을 URI로 식별하고 HTTP 메서드를 활용해 자원 조작을 가능하게 함
2. RESTful API의 특징
클라이언트-서버 구조
클라이언트와 서버가 독립적으로 동작하며 서로 간의 의존성을 줄임
클라이언트는 요청만 하고 서버는 응답만 제공하는 구조로 설계됨
무상태성
서버는 클라이언트의 상태를 저장하지 않음
요청이 독립적으로 처리되며 이전 요청에 의존하지 않음
캐시 가능
HTTP 프로토콜의 캐시를 활용해 응답 데이터를 캐싱할 수 있음
이를 통해 네트워크 트래픽을 줄이고 성능을 높일 수 있음
계층화
중간 계층을 활용해 보안, 로드 밸런싱 등의 기능을 추가할 수 있음
클라이언트는 중간 계층의 존재를 알 필요가 없음
통합된 인터페이스
자원과 상호작용하는 방식이 일관되고 표준화되어 있어 사용성이 높음
3. HTTP 메서드와 RESTful API
RESTful API는 HTTP 메서드를 활용해 CRUD(생성, 조회, 수정, 삭제)를 수행함
GET: 자원 조회
POST: 자원 생성
PUT: 자원 수정(전체)
PATCH: 자원 수정(부분)
DELETE: 자원 삭제
4. RESTful API의 설계 원칙
URI는 자원을 표현해야 함
URI는 동사보다 명사를 사용해야 함
예: /users (O), /getUsers (X)
HTTP 메서드와 일치하는 동작 설계
HTTP 메서드와 동작을 일관성 있게 매핑해야 함
상태 코드를 적절히 활용
클라이언트가 요청 결과를 쉽게 이해할 수 있도록 상태 코드를 반환해야 함
예: 200 OK, 201 Created, 404 Not Found
자원 간 관계 표현
URI를 통해 자원 간 관계를 명확히 나타내야 함
예: /users/{userId}/orders
5. RESTful API의 장단점
장점
설계가 간단하고 직관적임
표준화된 HTTP를 활용하기 때문에 호환성이 높음
확장성과 유지보수성이 뛰어남
단점
요청마다 데이터를 전송하기 때문에 대규모 트래픽에서는 비효율적일 수 있음
실시간 데이터 전송에는 적합하지 않음
6. RESTful API와 REST API의 차이
RESTful API는 REST의 원칙을 준수하는 API를 의미함
REST API는 REST를 기반으로 하지만 반드시 RESTful한 것은 x
즉, RESTful API는 REST API의 하위 집합
'장고' 카테고리의 다른 글
django JWT (0) | 2024.12.23 |
---|---|
Django Rest Framework (1) | 2024.12.19 |
Django ManyToManyField (0) | 2024.12.17 |
django annotate (1) | 2024.12.16 |
django foreign key (0) | 2024.12.13 |