Python으로 API 서버를 만드는 방법 250108
q1: Python으로 API 서버를 만드는 방법
a1:
Python으로 API 서버를 만드는 방법을 보여드리겠습니다. 가장 흔히 사용되는 라이브러리는 Flask 또는 FastAPI입니다. 여기서는 두 가지 방법을 간단히 설명드리겠습니다.
1. Flask로 API 서버 만들기
설치
pip install flask
예제 코드
from flask import Flask, jsonify, request
app = Flask(__name__)
# 샘플 데이터
users = [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
# 기본 경로
@app.route('/')
def home():
return "Welcome to the Flask API!"
# 모든 사용자 조회
@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)
# 특정 사용자 조회
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = next((u for u in users if u['id'] == user_id), None)
if user:
return jsonify(user)
return jsonify({"error": "User not found"}), 404
# 사용자 추가
@app.route('/users', methods=['POST'])
def add_user():
new_user = request.json
users.append(new_user)
return jsonify(new_user), 201
# 서버 실행
if __name__ == '__main__':
app.run(debug=True)
실행 방법
1. 위 코드를 app.py로 저장.
2. 터미널에서 실행:
python app.py
3. 브라우저에서 http://127.0.0.1:5000/로 접속.
2. FastAPI로 API 서버 만들기
설치
pip install fastapi uvicorn
예제 코드
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI()
# 데이터 모델 정의
class User(BaseModel):
id: int
name: str
# 샘플 데이터
users = [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
# 기본 경로
@app.get("/")
def read_root():
return {"message": "Welcome to the FastAPI server!"}
# 모든 사용자 조회
@app.get("/users")
def get_users():
return users
# 특정 사용자 조회
@app.get("/users/{user_id}")
def get_user(user_id: int):
user = next((u for u in users if u["id"] == user_id), None)
if user:
return user
raise HTTPException(status_code=404, detail="User not found")
# 사용자 추가
@app.post("/users", response_model=User)
def add_user(user: User):
users.append(user.dict())
return user
실행 방법
1. 위 코드를 main.py로 저장.
2. 터미널에서 실행:
uvicorn main:app --reload
3. 브라우저에서 http://127.0.0.1:8000로 접속.
Flask vs FastAPI 비교
Feature Flask FastAPI
성능 상대적으로 느림 더 빠르고 비동기 지원
데이터 검증 수동으로 처리해야 함 Pydantic으로 자동 처리
API 문서 제공 수동 추가 필요 자동 Swagger UI 생성
사용 난이도 쉬움 약간 더 복잡하지만 효율적
FastAPI는 현대적이고 고성능 API 서버를 만들기에 적합하며, Flask는 간단한 API나 초보자 학습용으로 적합합니다.
필요한 기능에 따라 적합한 라이브러리를 선택