Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 헤더가드
- 최종프로젝트
- sk네트웍스familyai캠프
- 주간회고
- 12기
- FastAPI
- 21주차
- 임베딩
- one-shot
- 어셈블
- 회고록
- 소스코드
- 컴파일
- AWS
- C++
- Langchain
- 배포
- 전처리
- sk네트웍스family
- sk네트웍스familyai캠프12기
- openai
- Rag
- Fine-tuning
- sk네트웍스ai캠프
- Docker
- ai캠프
- zero-shot
- 중복인클루드
- few-shot
- #include
Archives
- Today
- Total
ansir 님의 블로그
FAST API 간단 실습: To-Do API 만들기 본문
실습 프로젝트 주제
"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
현재 추가된 할 일 데이터가 없으므로 빈 값이 출력됩니다.
반응형
'컴퓨터 언어 > Python' 카테고리의 다른 글
옵저버 패턴과 FAST API를 활용한 도서 관리 시스템 예제 (3) | 2025.06.05 |
---|---|
Python 패키지 개발( +GitHub ) (0) | 2025.05.16 |
컴퓨팅 노트북( Computational Notebook ) (1) | 2025.03.07 |
Google Colab, 클라우드 기반 Jupyter Notebook (1) | 2025.03.05 |