일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 챗gpt
- fastapi #python웹개발
- 판다스 데이터정렬
- 파이토치
- deeplearning
- 파이썬웹개발
- 파이토치기본
- 파이썬
- 사이킷런
- HTML
- python 정렬
- OpenAIAPI
- programmablesearchengine
- pandas
- konlpy
- chatGPT
- 비지도학습
- langchain
- fastapi #파이썬웹개발
- NLP
- 딥러닝
- sklearn
- pytorch
- fastapi
- 랭체인
- 머신러닝
- 자연어분석
- 판다스
- MachineLearning
- Python
- Today
- Total
Data Navigator
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기2 - Routing 본문
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기2 - Routing
1. APIRouter 클래스를 사용한 라우팅
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def welcome() -> dict:
return { "message": "Hello World"}
위의 코드는 단일 경로를 사용하는 경우에 사용하는 방식이다. 여러 함수를 사용하는 연속적인 라우팅 처리는 APIRouter 클래스를 사용해야 한다. APIRouter 사용을 위해 todo.py 파일을 만들고 라우팅 처리기를 만들자.
1) todo.py 파일 생성후 add_todo, retrive_todos 함수 작성
# todo.py
from fastapi import APIRouter
todo_router = APIRouter()
todo_list = []
@todo_router.post("/todo")
async def add_todo(todo: dict) -> dict:
todo_list.append(todo)
return {
"message" : "Todo added successfully."
}
@todo_router.get("/todo")
async def retrive_todos() -> dict:
return {
"todos" : todo_list
}
2) api.py 파일에 todo.py 불러와 연결하기
FastAPI에서 사용하는 웹 서버인 uvicorn에서는 APIRouter()를 실행할 수 없고 오직 FastAPI()만 실행 가능하다. 따라서 api.py 파일을 수정해 APIRouter를 import 해와서 사용해야 한다.
api.py에 todo.py에서 정의한 APIRouter() 인스턴스인 todo_router를 불러오자.
welcome함수는 가장 위의 Hello World를 출력하는 것을 제외하고 나머지는 삭제한다.
from fastapi import FastAPI
from todo import todo_router
app = FastAPI()
@app.get("/")
async def welcome() -> dict:
return { "message": "Hello World"}
app.include_router(todo_router)
3) 서버 실행 후 docs에서 테스트 하기
작성이 완료되었으면 파일을 저장하고(ctrl+s) 터미널에서 uvicorn으로 api.py를 실행한다.
uvicorn api:app --port 8000 --reload
웹브라우저를 열고 localhost:8000/docs로 접속
post 가 있는 메뉴의 드롭다운 메뉴를 열고 try it out 클릭
request body 창에 있는 {} 안에 아래의 내용을 입력하고 excute 버튼 클릭
{"id": 1, "item": "FastAPI todo 첫 테스트"}
response 쪽에 "message" : "Todo added successfully" 가 표시되는지 확인
response 쪽에 "message" : "Todo added successfully" 가 표시되고 서버를 실행시킨 terminal에서 응답 코드 200이 뜨면 성공
출처: 아데시나, 압둘라지즈 압둘라지즈. FastAPI를 사용한 파이썬 웹 개발. 번역 김완섭. 한빛미디어, 2023
'FastAPI' 카테고리의 다른 글
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기6 - todo 목록 반환 모델 만들기 (0) | 2024.05.08 |
---|---|
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기5 - CRUD 구현 하기 (0) | 2024.05.08 |
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기4 - 경로 매개변수와 쿼리 매개변수 (0) | 2024.05.04 |
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기3 - pydantic 으로 유효성 검사하기 (0) | 2024.05.03 |
FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기 (0) | 2024.05.03 |