
RESTful API는 Representational State Transfer (REST) 원칙을 따르는 API로, 클라이언트와 서버 간의 통신 방식을 정해주는 아키텍처 스타일입니다. RESTful API는 HTTP 프로토콜을 기반으로 하며, 특정한 원칙과 규칙을 따라 데이터를 주고받기 때문에 확장성, 유지보수성, 가독성에서 이점을 가집니다.
RESTful API는 일관성 있는 엔드포인트와 HTTP 메서드를 사용하여 간결하고 직관적인 구조를 제공합니다.
🤔 REST API와 RESTful API의 차이는 뭘까?
1. REST (Representational State Transfer)
2. REST API
3. RESTful API
요약
결론적으로, 모든 RESTful API는 REST API지만, 모든 REST API가 반드시 RESTful한 것은 아닙니다. RESTful API는 REST의 원칙을 최대한 지켜 설계된 API를 가리키며, REST API보다 더 REST의 규칙을 엄격히 준수하려는 의도를 내포하고 있습니다.

클라이언트의 각 요청은 독립적이어야 하며, 서버는 각 요청을 개별적으로 처리합니다. 즉, 서버는 요청 간의 상태를 기억하지 않으며, 필요한 모든 정보는 요청 안에 포함됩니다.
클라이언트와 서버는 서로 독립적입니다. 클라이언트는 요청을 통해 데이터를 요청하고, 서버는 데이터를 제공하는 역할만을 합니다. 이를 통해 서로의 역할을 분리하고, 독립적으로 확장 가능하게 만듭니다.
모든 리소스에 대해 일관된 URI 형식을 사용하고, HTTP 메서드를 활용하여 리소스를 CRUD (Create, Read, Update, Delete) 방식으로 조작합니다.
REST에서는 각각의 리소스가 고유한 URI로 식별됩니다. 예를 들어, /users/123는 ID가 123인 사용자 리소스를 의미합니다.
서버는 데이터를 JSON, XML 등 다양한 형식으로 응답할 수 있습니다. 클라이언트는 이를 받아 필요한 형식으로 변환하여 사용할 수 있습니다.
REST API 응답에는 캐시가 가능해야 합니다. 이를 통해 서버에 부담을 줄이고, 요청 속도를 향상시킬 수 있습니다.
RESTful API는 클라이언트와 서버 간의 통신을 간단하고 효율적으로 만들어 주며, 현재 웹 API 설계에서 널리 사용되는 방식입니다.
가상의 사용자 관리 API
기본 URL: https://api.example.com/users
1. 사용자 조회 (GET)
설명: 모든 사용자 정보를 가져옵니다.
응답 예시:
[
{"id": 1, "name": "Alice", "email": "alice@example.com"},
{"id": 2, "name": "Bob", "email": "bob@example.com"}
]
설명: ID가 1인 사용자 정보를 가져옵니다.
응답 예시:
{"id": 1, "name": "Alice", "email": "alice@example.com"}
2. 사용자 생성 (POST)
{"name": "Charlie", "email": "charlie@example.com"}
설명: 새로운 사용자를 생성합니다.
응답 예시:
{"id": 3, "name": "Charlie", "email": "charlie@example.com"}
3. 사용자 수정 (PUT/PATCH)
사용자 정보 수정:
- HTTP Method: PUT 또는 PATCH
- Endpoint: https://api.example.com/users/1
- Request Body:
{"name": "Alice Smith", "email": "alice.smith@example.com"}
설명: ID가 1인 사용자의 정보를 업데이트합니다.
응답 예시:
```javascript
{"id": 1, "name": "Alice Smith", "email": "alice.smith@example.com"}
4. 사용자 삭제 (DELETE)
설명: ID가 1인 사용자를 삭제합니다.
응답 예시:
{"message": "User deleted successfully"}