전체 코드
from fastapi import FastAPI
from enum import Enum
app = FastAPI()
@app.get("/", description='this is our first roote')
async def base_get_roote():
return {"message":"hello world"}
@app.post("/")
async def post():
return {"message":"hello from the post roote"}
@app.put("/")
async def put():
return {"message":"hello from the put roote"}
@app.get("/users")
async def list_users():
return {"message":"list users route"}
@app.get("/users/{user_id}")
async def get_user(user_id: str):
return {"user_id":user_id}
@app.get("/users/me")
async def get_current_user():
return {"message":"this is the current user"}
class FoodEnum(str, Enum):
fruits = "fruits"
vegetables = "vegetables"
diary = "dairy"
@app.get("/foods/{food_name}")
async def get_food(food_name: FoodEnum):
if food_name == FoodEnum.vegetables:
return {"food_name":food_name, "message":"you are healthy"}
if food_name.value == "fruits":
return {"food_name":food_name, "message":"you are still healthy, but like sweet things"}
return {"food_name":food_name, "message":"I like chocolate milk"}
@app.get("/users")를 통해 users 경로를 만들어본다.
이제는 결과창만 봐도 이해가 되는 지경에 이르렀다.
user_id라는 string 인자를 받아 결과를 확인하도록 확장해본다
숫자를 넣더라도 string형태로 인식된다.
food name을 가져오는 실습을 해보자
라이브러리를 import 한 뒤 진행한다
food 이름을 class로 만들어주고 get method를 사용해 정보를 가져올 때, class를 활용해본다
- 함수의 첫 번째 부분에서는 food_name이 FoodEnum.vegetables인 경우를 확인. 이 경우, "you are healthy"라는 메시지를 반환. 예를 들어, 요청이 /foods/vegetables인 경우에 해당.
- 두 번째 부분에서는 food_name.value가 "fruits"인지 확인. food_name이 Enum 객체이기 때문에 .value를 사용하여 실제 값을 가져옴. 만약 그 값이 "과일"이라면 "you are still healthy, but like sweet things"라는 메시지를 반환합니다. 이는 예를 들어 /foods/fruits로 요청한 경우에 해당
- 위의 두 경우에 해당하지 않는 경우, 즉 food_name이 FoodEnum.vegetables도 아니고 "fruits"도 아닌 경우, "I like chocolate milk"라는 메시지를 반환. 이는 예를 들어 /foods/dairy로 요청한 경우에 해당.
{}에 있는 것을 path parameters라고하며, 인자에서 필수로 넣어야하는 인자(required)임을 확인할 수 있다.
다음 시간에는 query parameters를 익혀보자
반응형
'Python > API' 카테고리의 다른 글
Fast API Tutorial(3.5): toy project(calculator) (0) | 2024.03.01 |
---|---|
Fast API Tutorial(3): query parameters (0) | 2024.02.24 |
Fast API Tutorial(1): introduction (0) | 2024.02.23 |