FastAPI/FastAPI 알아보기

GET API - 전체 조회

hyunai 2026. 5. 10. 12:07

todo dictionary 만들어주기

todo_data = {
    1: {
        "id": 1,
        "contents": "실전 FastAPI 섹션 0 수강",
        "is_done": True,
    },
    2: {
        "id": 2,
        "contents": "실전 FastAPI 섹션 1 수강",
        "is_done": False,
    },
    3: {
        "id": 3,
        "contents": "실전 FastAPI 섹션 2 수강",
        "is_done": False,
    }
}

todo 값들을 리스트로 뽑아서 조회하기

@app.get("/todos")
def get_todos_handler():
    return list(todo_data.values())

서버를 키고 /docs 로 진입하면 밑처럼 swagger가 나온다.

query parameter를 받아 api 통신해보기

@app.get("/todos")

# order라는 파라미터 값들을 받는다.
# order 값이 string 값이거나 파라미터 값이 없어도 된다(optional하게)
def get_todos_handler(order: str | None = None):
    ret = list(todo_data.values())
    if order and order == "DESC":
    	# 역정렬
        return ret[::-1]
    return ret

str | None = None 문법?

def get_todos_handler(order: str | None = None):
#                            ↑ 타입힌트  ↑ 기본값
#                     ↑ 파라미터명

str

  • Python 문자열 타입

| None

표현 의미
str 반드시 문자열이어야 함
str | None 문자열이어도 되고, 없어도(None) 됨

= None

  • 기본값 설정
  • 아무것도 안 넘기면 자동으로 None으로 세팅
# 이렇게 요청하면
GET /todos          → order = None   (기본값)
GET /todos?order=DESC → order = "DESC"
GET /todos?order=ASC  → order = "ASC"

요약

order라는 파라미터는 문자열이나 None을 받을 수 있고, 아무것도 안 보내면 기본적으로 None

def get_todos_handler(order: str | None = None)
                      ─┬──  ────┬─────  ──┬──
                       │        │          └── 안 넘기면 None으로 할게
                       │        └─────────── 문자열이거나 None이어도 돼
                       └──────────────────── 이 파라미터 이름은 order야

swagger에 진입 후 아무것도 입력하지 않았을 때

swagger에서 DESC라는 파라미터를 입력했을 때

역정렬이 된 모습을 볼 수 있다.

그냥 123 이라는 String 값을 입력했을 때

'FastAPI > FastAPI 알아보기' 카테고리의 다른 글

PATCH API - 수정  (0) 2026.05.10
POST API - 생성  (0) 2026.05.10
GET API - 단일 조회  (0) 2026.05.10
FastAPI 간단한 HTTP 통신  (0) 2026.05.10
FastAPI 소개  (0) 2026.05.09