Back/FastAPI
1. 기본 예시
멍게는싯가
2022. 11. 12. 13:28
0. 최상단 - 라이브러리 import, Aplication 호출
from fastapi import FastAPI
import uvicorn
app = FastAPI()
1. Get End point
@app.get("/")
async def main():
return {"message": "Hello World!"}
1-1 Query, Path String 설정
@app.get("/{path}/")
async def main(path,query: str=""):
return {"message": f"query: {query}, path: {path}"}
- 경로 매개 변수가 아닌 다른 함수 매개 변수는 전부 Query String 으로 설정 됩니다.
- 타입과 기본값을 지정할 수 있습니다.(query, 타입 str, 기본값 "")
1-2 Union, Optional 설정
@app.get("/main2")
async def main2(path:Union[str,None]=None, query: Optional[str]=None):
return {"message": f"query: {query}, path: {path}, main2"}
- Union은 [ ]안에 들어갈 수 있는 타입을 전부 넣습니다.
- Optional 은 하나의 타입만 지정하며 기본값으로 None을 가집니다.
2. Post End point
@app.post("/")
async def main():
return {"message": "Hello Post!"}
2-1 Request body
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
@app.post("/")
async def main(item: Item):
return item
- Pydantic을 통한 Class model 생성으로 Request body에 들어갈 항목들을 설정할 수 있다.
- get 에 설명된 query parameters와 path string 또한 사용가능 하다.