ansir 님의 블로그

FAST API 간단 실습: To-Do API 만들기 본문

컴퓨터 언어/Python

FAST API 간단 실습: To-Do API 만들기

ansir 2025. 6. 5. 14:00

실습 프로젝트 주제

"To-Do API" 만들기

사용자가 할 일을 추가하고, 조회하고, 삭제할 수 있는 간단한 REST API


1단계: 프로젝트 초기 설정

폴더 구조

todo_api/
├── main.py
├── models.py
├── schemas.py
├── database.py
└── requirements.txt

2단계: 가상환경 설정하기

python -m venv venv
# 윈도우
venv\Scripts\activate
pip install fastapi uvicorn pydantic

requirements.txt 만들기:

fastapi
uvicorn
pydantic

3단계: 코드 작성

main.py

from fastapi import FastAPI, HTTPException
from typing import List
from models import todos
from schemas import Todo

app = FastAPI()

@app.get("/", tags=["Health"])
def root():
    return {"status": "API is running"}

@app.get("/todos", response_model=List[Todo])
def get_todos():
    return todos
@app.post("/todos", response_model=Todo)
def add_todo(todo: Todo):
    todos.append(todo)
    return todo

@app.delete("/todos/{todo_id}")
def delete_todo(todo_id: int):
    if todo_id > len(todos) or todo_id < 0:
        raise HTTPException(status_code=404, detail="Todo not found")
    deleted = todos.pop(todo_id)
    return {"deleted": deleted}

models.py

from schemas import Todo

# 임시 저장소(DB 없이 메모리 저장)
todos: list[Todo] = []

schemas.py

from pydantic import BaseModel

class Todo(BaseModel):
    title: str
    description: str

실행

uvicorn main:app --reload

 

 

실행 결과

코드 실행 후 주어진 url로 들어가게 되면 위와 같은 화면이 뜨게 됩니다. 결과를 테스트 하기 위해서는 url 뒤에 /docs를 붙여주면 테스트 화면이 뜨게 됩니다.

 

 

정의한 함수 실행

실행할 준비: Try it out

탭을 누르고 오른쪽의 Try it out을 누릅니다.


실행: Execute

매개변수를 정의하였다면 입력해주어야 하지만 get_tools() 함수는 매개변수가 없으므로 바로 Execute 버튼을 눌러 실행시켜줍니다.


결과 보기: Response body

현재 추가된 할 일 데이터가 없으므로 빈 값이 출력됩니다.

반응형