1. REST API의 기본 개념
REST API는 “Representational State Transfer”의 약자이다. 간단히 말하면, 웹에서 데이터를 주고받기 위한 규칙이라고 할 수 있다. 여기서 API는 “Application Programming Interface”의 약자이며, 서로 다른 소프트웨어가 데이터나 기능을 주고받을 수 있도록 하는 연결고리이다.
REST API는 HTTP 프로토콜을 사용해 데이터를 주고받는다. 즉, 웹에서 우리가 웹 페이지를 요청할 때 사용하는 것과 같은 HTTP를 통해 서버와 클라이언트가 서로 정보를 주고받는다. REST API는 서버와 클라이언트 간의 데이터 교환을 효율적으로 할 수 있도록 설계된 규칙을 따르며, 이를 통해 서로 다른 시스템들이 쉽게 소통할 수 있다.
2. REST API의 특징
REST API는 특정한 규칙을 따르는 것이 특징이다. 그 규칙들은 크게 4가지로 요약할 수 있다.
HTTP 메서드 사용 : REST API는 HTTP 메서드를 사용하여 리소스(데이터)에 대해 작업을 한다. HTTP 메서드는 4가지가 있다:
• GET: 서버에서 데이터를 조회한다.
• POST: 서버에 데이터를 추가한다.
• PUT: 서버의 데이터를 수정한다.
• DELETE: 서버의 데이터를 삭제한다.
리소스 : REST API에서 리소스는 다루고자 하는 데이터를 의미한다. 예를 들어, 사용자 정보, 게시글 등의 데이터가 리소스에 해당한다. 이 리소스들은 URI(Uniform Resource Identifier)로 식별된다. 예를 들어, “https://example.com/users”는 사용자 정보를 나타내는 URI이다.
Stateless (무상태성) : REST API는 상태를 유지하지 않는다. 즉, 각 요청은 독립적이어야 하며, 서버는 이전의 요청 상태를 기억하지 않는다. 예를 들어, 클라이언트가 로그인했는지 여부는 매번 요청에서 명시적으로 제공해야 한다.
클라이언트-서버 구조 : REST API는 클라이언트와 서버가 명확히 분리되어 있어야 한다. 서버는 데이터를 관리하고, 클라이언트는 서버로부터 데이터를 요청하여 사용한다. 클라이언트와 서버는 독립적으로 동작하며, 클라이언트는 서버에서 제공하는 기능을 사용할 뿐이다.
3. REST API의 HTTP 메서드와 예시
REST API에서는 위에서 말한 HTTP 메서드를 사용하여 리소스에 대해 작업을 한다. 각 메서드의 예시를 살펴보자.
GET 요청 (데이터 조회)
GET /users/1
위의 요청은 ID가 1인 사용자의 정보를 조회하는 요청이다. GET 요청은 서버에서 데이터를 가져오기만 할 뿐, 서버의 데이터를 수정하지 않는다.
POST 요청 (데이터 생성)
POST /users
위의 요청은 새로운 사용자를 생성하는 요청이다. POST 요청은 보통 새로운 리소스를 서버에 추가할 때 사용된다. 예를 들어, 사용자의 이름, 이메일 등을 서버에 전송하여 새로운 사용자를 추가할 수 있다.
PUT 요청 (데이터 수정)
PUT /users/1
위의 요청은 ID가 1인 사용자의 정보를 수정하는 요청이다. PUT 요청은 주로 기존의 리소스를 업데이트할 때 사용된다. 예를 들어, 사용자의 이메일 주소를 수정하는 경우에 사용된다.
DELETE 요청 (데이터 삭제)
DELETE /users/1
위의 요청은 ID가 1인 사용자를 삭제하는 요청이다. DELETE 요청은 서버에서 데이터를 제거할 때 사용된다.
4. REST API의 장점
REST API의 가장 큰 장점은 단순성과 확장성이다.
- 단순성 : REST API는 HTTP와 같은 일반적인 웹 프로토콜을 사용하므로, 이해하기 쉽고 직관적이다. 이를 통해 개발자는 빠르게 API를 개발하고 테스트할 수 있다.
- 확장성 : REST API는 클라이언트와 서버를 독립적으로 분리하여 개발할 수 있기 때문에, 시스템을 확장하거나 변경할 때 유연하게 대응할 수 있다. 또한, REST API는 다양한 플랫폼에서 쉽게 사용할 수 있다
5. Python으로 REST API 호출하기
이제 Python을 사용하여 REST API를 호출하는 방법을 알아보자. Python에서는 requests라는 라이브러리를 사용하여 REST API와 상호작용할 수 있다.
GET 요청 보내기
import requests
# API URL
url = "https://jsonplaceholder.typicode.com/users/1"
# GET 요청 보내기
response = requests.get(url)
# 응답이 성공적인 경우
if response.status_code == 200:
data = response.json() # JSON 형식으로 응답 데이터 받기
print("사용자 정보:", data)
else:
print("서버에서 데이터를 가져오는 데 실패했습니다.")
위 코드는 GET 요청을 보내 사용자 ID 1의 정보를 받아오는 예제이다. requests.get()을 사용하여 서버에 요청을 보내고, 응답을 받아온 후, 성공적인 응답이 오면 그 데이터를 JSON 형식으로 처리한다.
POST 요청 보내기
import requests
# API URL
url = "https://jsonplaceholder.typicode.com/users"
# 새 사용자 데이터
new_user = {
"name": "Jane Doe",
"username": "jane_doe",
"email": "janedoe@example.com"
}
# POST 요청 보내기
response = requests.post(url, json=new_user)
# 응답이 성공적인 경우
if response.status_code == 201:
print("새 사용자 생성 성공:", response.json())
else:
print("사용자 생성 실패:", response.status_code)
이 코드는 POST 요청을 보내 새로운 사용자를 생성하는 예제이다. requests.post()를 사용하여 서버에 데이터를 보내고, 그 결과를 응답으로 받아온다.
REST API는 웹에서 데이터를 효율적으로 주고받는 방식으로, HTTP를 기반으로 동작한다. 이를 통해 서버와 클라이언트 간의 데이터 전송을 직관적이고 유연하게 처리할 수 있다. Python을 사용하면 간단한 코드로 REST API와 상호작용할 수 있으며, 실습을 통해 이해도를 높일 수 있다. REST API는 웹 서비스 개발에서 매우 중요한 개념이므로, 이를 잘 이해하고 활용하는 것이 중요하다.
'IT Expertise > Development' 카테고리의 다른 글
[DEV] 콜백 함수 Callback Function (1) | 2024.11.18 |
---|---|
[Documentation] Sphinx와 Doxygen을 활용한 프로젝트 문서화 (2) | 2024.11.16 |
댓글