본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

이론

FastAPI란? Python으로 REST API와 웹 백엔드 서버 개발하기

FastAPI

Python으로 REST API와 웹 백엔드 서버를 매우 쉬고 빠르게 개발 할 수 있도록 만들어진 고성능 웹프레임워크

클라이언트 요청을 받아 데이터처리를 하며 결과를 JSON으로 응답한다. 백엔드 API 서버를 만드는 도구.

async/await 기반 비동기 처리를 지원해 동시에 많은 요청을 처리 가능하다.

코드가 간결하고 성능이 매우 좋고 데이터 검증을 자동 처리하고 SQLAlchemy등 DB연동이 쉽지만

Django처럼 관리자 페이지가 없고 구조를 직접 설계하며, async 개념을 알아야 제대로 활용이 가능하다는 단점이 있다 .

 

@app.get() → 조회
@app.post() → 생성
@app.put() → 수정
@app.delete() → 삭제
BaseModel → 데이터 검증
/docs → 자동 API 문서

 

기본 FastAPI서버

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

# -----------------------
# 1) 데이터 모델 (검증)
# -----------------------
class Item(BaseModel):
    name: str
    price: int


# -----------------------
# 2) 임시 DB (메모리)
# -----------------------
db = []

 

 

 

조회

@app.get("/items")
def get_items():
    return db
@app.get("/items/{item_id}")
def get_item(item_id: int):
    if item_id >= len(db):
        raise HTTPException(status_code=404, detail="Item not found")
    return db[item_id]

 

 

 

생성

@app.post("/items")
def create_item(item: Item):
    db.append(item)
    return {"message": "created", "data": item}

 

 

 

수정

@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    if item_id >= len(db):
        raise HTTPException(status_code=404, detail="Item not found")

    db[item_id] = item
    return {"message": "updated", "data": item}

 

 

 

삭제

@app.delete("/items/{item_id}")
def delete_item(item_id: int):
    if item_id >= len(db):
        raise HTTPException(status_code=404, detail="Item not found")

    db.pop(item_id)
    return {"message": "deleted"}