카테고리 없음

Python으로 API 서버를 만드는 방법 250108

mezzanineX 2025. 1. 8. 11:15

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나 초보자 학습용으로 적합합니다.

필요한 기능에 따라 적합한 라이브러리를 선택

반응형