728x90
반응형
Flask RESTful API 기본 개념
Flask는 Python으로 작성된 가벼운 웹 프레임워크로, RESTful API를 쉽게 만들 수 있는 강력한 도구를 제공합니다. 이번 포스팅에서는 Flask를 사용하여 RESTful API를 구축하는 기본 개념과 간단한 예제를 살펴보겠습니다.
RESTful API란?
REST(Representational State Transfer)는 클라이언트와 서버 간의 통신을 단순화하고 표준화하기 위한 아키텍처 스타일입니다. RESTful API는 다음과 같은 특징을 가집니다:
- 리소스 기반: URL은 리소스를 나타냅니다.
- HTTP 메서드 사용: HTTP 메서드(GET, POST, PUT, DELETE 등)를 활용하여 리소스를 조작합니다.
- 무상태성: 각 요청은 독립적이며, 서버는 클라이언트의 상태를 저장하지 않습니다.
- 표준 응답 형식: JSON이나 XML과 같은 표준 데이터 형식을 사용합니다.
Flask로 RESTful API 만들기
Flask를 사용하면 RESTful API를 간단히 만들 수 있습니다. 여기서는 Flask와 Flask-RESTful 확장을 사용하여 API를 구축하는 방법을 알아봅니다.
1. Flask와 Flask-RESTful 설치
pip install flask flask-restful
2. 기본 RESTful API 구현
아래는 간단한 Flask RESTful API 예제입니다. 이 API는 사용자를 관리하는 기능을 제공합니다.
from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
# 데이터 저장용 딕셔너리
users = {}
# 사용자 관련 리소스 정의
class User(Resource):
def get(self, user_id):
"""특정 사용자 정보 조회"""
if user_id in users:
return {"user_id": user_id, "data": users[user_id]}, 200
return {"message": "User not found"}, 404
def put(self, user_id):
"""특정 사용자 정보 업데이트"""
data = request.get_json()
users[user_id] = data
return {"message": "User updated", "data": data}, 200
def delete(self, user_id):
"""특정 사용자 삭제"""
if user_id in users:
del users[user_id]
return {"message": "User deleted"}, 200
return {"message": "User not found"}, 404
class UserList(Resource):
def get(self):
"""모든 사용자 목록 조회"""
return {"users": users}, 200
def post(self):
"""새로운 사용자 추가"""
user_id = len(users) + 1
data = request.get_json()
users[user_id] = data
return {"message": "User created", "user_id": user_id, "data": data}, 201
# API 경로 등록
api.add_resource(UserList, '/users')
api.add_resource(User, '/users/<int:user_id>')
if __name__ == '__main__':
app.run(debug=True)
3. 코드 설명
- Flask-RESTful 초기화:
Api
객체를 생성하여 Flask 앱에 연결합니다. - 리소스 정의:
Resource
클래스를 상속받아 API의 각 엔드포인트 동작(GET, POST, PUT, DELETE 등)을 정의합니다. - 엔드포인트 등록:
api.add_resource
를 사용하여 URL과 리소스를 연결합니다. - 데이터 저장: 간단히
users
딕셔너리를 사용했지만, 실제로는 데이터베이스를 사용할 수 있습니다.
4. 실행 결과
- 서버 실행: 위 코드를 실행하면 Flask 개발 서버가
http://127.0.0.1:5000
에서 실행됩니다. - 테스트 요청:
GET /users
: 모든 사용자 목록을 반환합니다.POST /users
: 새 사용자를 추가합니다.{ "name": "John Doe", "email": "john@example.com" }
GET /users/1
: ID가 1인 사용자의 정보를 반환합니다.PUT /users/1
: ID가 1인 사용자의 정보를 업데이트합니다.DELETE /users/1
: ID가 1인 사용자를 삭제합니다.
5. RESTful API 테스트
RESTful API를 테스트하기 위해 Postman
이나 curl
을 사용할 수 있습니다.
예제:
# 모든 사용자 조회
curl -X GET http://127.0.0.1:5000/users
# 새 사용자 추가
curl -X POST http://127.0.0.1:5000/users \
-H "Content-Type: application/json" \
-d '{"name": "Alice", "email": "alice@example.com"}'
# 특정 사용자 조회
curl -X GET http://127.0.0.1:5000/users/1
# 사용자 정보 업데이트
curl -X PUT http://127.0.0.1:5000/users/1 \
-H "Content-Type: application/json" \
-d '{"name": "Alice Updated", "email": "alice.updated@example.com"}'
# 사용자 삭제
curl -X DELETE http://127.0.0.1:5000/users/1
결론
Flask와 Flask-RESTful은 간단하면서도 강력한 RESTful API를 구축할 수 있는 도구를 제공합니다. 이번 포스팅에서는 기본적인 개념과 예제를 통해 Flask RESTful API의 동작 원리를 살펴보았습니다.
반응형
'Python > Python Flask' 카테고리의 다른 글
Flask로 RESTful API와 JSON 데이터 처리하기 (0) | 2025.09.09 |
---|---|
Flask로 RESTful API 엔드포인트 만들기 (0) | 2025.09.08 |
Flask에서 폼 처리와 파일 업로드 기능 구현하기 (0) | 2025.09.06 |
Flask와 폼 처리 기법: 폼 유효성 검사 및 사용자 입력 처리 (0) | 2025.09.05 |
Flask와 폼 처리 기법: Flask-WTF 사용하기 (0) | 2025.09.04 |