Data Navigator

FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기4 - 경로 매개변수와 쿼리 매개변수 본문

FastAPI

FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기4 - 경로 매개변수와 쿼리 매개변수

코딩하고분석하는돌스 2024. 5. 4. 21:09

FastAPI 설치 환경 세팅 및 간단한 테스트 웹 만들기4 

- 경로 매개변수와 쿼리 매개변수 -

 

 

 

 

1. 경로 매개변수

경로 매개변수는 리소스를 식별하기 위해 API 라우팅에 사용된다.

앞에서 만든 todo 프로그램에서 id 1번을 조회하고 싶을 때 id를 매개변수로 전달해 조회 한다.

예) localhost:8000/todo/1

 

1) todo list의 id로 내용을 조회하게 하기 위해 todo.py에 get_single_todo함수를 정의하고 라우터에 경로 매개변수를 추가한다.

# todo.py
@todo_router.get("/todo/{todo_id}")
async def get_single_todo(todo_id: int) -> dict:
    for todo in todo_list:
        if todo.id == todo_id:
            return {
                "todo" : todo
            }
    return {
        "message" : "Todo with supplied ID doesn't exist."
    }

 

 

2) curl 명령어를 이용해 id, item을 등록하고 조회해보자.

curl 명령을 이용해 id, item을 등록한다.

curl -X 'POST'   'http://127.0.0.1:8000/todo'   -H 'accept: application/json'   -H 'Content-Type: application/json'   -d '{"id":1, "item": "First Todo is to finish this book!"}

 

 "message": "Todo added successfully." 가 보이면 성공

 

이번에는 curl 명령을 통해 경로 매개변수로 id를 전송해 방금 입력한 내용을 조회해 보자

curl -X 'GET' 'http://127.0.0.1:8000/todo/1' -H 'accept: application/json'

조금 전에 입력했던 "id" : 1, "item" : "First Todo is to finish this book!" 이 출력되면 성공

 

3) Path 클래스를 추가해 스웨거가 OpenAPI 기반 문서를 자동 생성할 때 라우트 관련 정보를 함께 문서화 하도록 한다.

todo.py에 Path를 임포트하고 get_single_todo 함수에 Path 내용을 추가한다.

@todo_router.get("/todo/{todo_id}")
async def get_single_todo(todo_id: int = Path(..., title="The id of the todo to retrieve.")) -> dict:
    for todo in todo_list:
        if todo.id == todo_id:
            return {
                "todo" : todo
            }
    return {
        "message" : "Todo with supplied ID doesn't exist."
    }

 

 

 

출처: 아데시나, 압둘라지즈 압둘라지즈. FastAPI를 사용한 파이썬 웹 개발. 번역 김완섭. 한빛미디어, 2023