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 |