본문 바로가기
Python/API

Fast API Tutorial(2): path parameters

by 고독한석사생 2024. 2. 23.

 

전체 코드

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를 활용해본다

  1. 함수의 첫 번째 부분에서는 food_name이 FoodEnum.vegetables인 경우를 확인. 이 경우, "you are healthy"라는 메시지를 반환. 예를 들어, 요청이 /foods/vegetables인 경우에 해당.
  2. 두 번째 부분에서는 food_name.value가 "fruits"인지 확인. food_name이 Enum 객체이기 때문에 .value를 사용하여 실제 값을 가져옴. 만약 그 값이 "과일"이라면 "you are still healthy, but like sweet things"라는 메시지를 반환합니다. 이는 예를 들어 /foods/fruits로 요청한 경우에 해당
  3. 위의 두 경우에 해당하지 않는 경우, 즉 food_name이 FoodEnum.vegetables도 아니고 "fruits"도 아닌 경우, "I like chocolate milk"라는 메시지를 반환. 이는 예를 들어 /foods/dairy로 요청한 경우에 해당.

docs에서 보면, 3가지 중 하나를 선택할 수 있음

 

diary를 선택하면, 정의한 message가 나오는 것을 확인할 수 있음

 

{}에 있는 것을 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