REST(Representational State Transfer)는 웹 기반 분산 시스템을 위한 아키텍처 스타일입니다. RESTful API는 이러한 REST 원칙을 따르는 API를 말합니다.
서버는 클라이언트의 상태를 저장하지 않으며, 각 요청은 독립적입니다.
자원 기반: URL을 통해 자원을 식별하며, HTTP 메서드(GET, POST, PUT, DELETE 등)를 통해 자원을 조작합니다.
HTTP 표준을 사용하여 클라이언트와 서버 간의 통신을 단순화합니다.
캐시 가능성: 응답은 캐시될 수 있으며, 이는 성능 향상에 도움이 됩니다.
서버와 클라이언트 간의 계층적 구조를 통해 시스템의 확장성과 유연성을 높입니다.
RESTful API 사용 이유
다양한 클라이언트(웹, 모바일 등)와의 호환성을 제공합니다.
시스템 구조가 계층화되어 확장과 유지보수가 용이합니다.
HTTP 표준을 사용하여 다양한 플랫폼에서 쉽게 통신할 수 있습니다.
무상태성과 캐싱을 통해 성능을 최적화할 수 있습니다.
API에서 제공할 자원을 정의하고 각 자원에 대해 고유한 URL을 설정합니다.
자원에 대한 CRUD(Create, Read, Update, Delete) 작업을 HTTP 메서드로 매핑합니다.
GET: 자원의 조회
POST: 자원의 생성
PUT/PATCH: 자원의 수정
DELETE: 자원의 삭제
명확하고 직관적인 URI를 설계합니다. 예를 들어, /users는 사용자 목록을, /users/{id}는 특정 사용자를 나타냅니다.
HTTP 응답 시 적절한 상태 코드를 사용하여 클라이언트에게 요청의 결과를 명확하게 전달합니다.
일반적으로 JSON 형식을 사용하여 데이터 전송을 간편하게 처리합니다.
HTTPS를 통해 API를 보호하고, 인증 및 권한 부여 메커니즘(OAuth 등)을 설정합니다.
RESTful API는 웹 서비스 구축 시 매우 유용한 아키텍처로, 개발의 표준으로 널리 사용됩니다.