- 1. FastAPI 입문: 설치부터 Hello World 까지
- 2. Path 와 Query 매개변수 (URL 로 데이터 받기)
- 3. Pydantic 으로 Request Body 다루기
- 4. Response Model 과 HTTP 상태 코드
- 5. 예외 처리 (HTTPException 완벽 가이드)
- 6. 의존성 주입 (Dependency Injection) 정복
- 7. SQLAlchemy 비동기 데이터베이스
- 8. JWT 인증과 보안 (로그인부터 토큰 갱신까지)
- 9. 실시간 통신 (WebSockets & SSE)
- 10. 테스트 작성법 (Pytest 완전 가이드)
2. Path 와 Query 매개변수 (URL 로 데이터 받기)
# 2 강. Path 와 Query 매개변수
## 🎯 학습 목표
- 경로 매개변수 (Path Parameter) 사용법
- 쿼리 스트링 (Query String) 활용법
- 타입 검증과 유효성 검사
---
## 1. 경로 매개변수 (Path Parameter)
```python
from fastapi import FastAPI
app = FastAPI()
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id}
```
### 타입 변환의 마법
FastAPI 는 **타입 힌트를 보고 자동으로 변환**합니다!
```python
@app.get("/items/{item_id}")
def get_item(item_id: int):
return {"item_id": item_id}
```
---
## 2. 쿼리 매개변수 (Query Parameter)
```python
@app.get("/items")
def read_items(skip: int = 0, limit: int = 10):
return {"skip": skip, "limit": limit}
```
**URL 예시:**
- `/items` → skip=0, limit=10
- `/items?skip=20&limit=5` → skip=20, limit=5
---
## 3. Path() 와 Query() 고급 옵션
```python
from fastapi import FastAPI, Path, Query
from typing import Annotated
app = FastAPI()
@app.get("/articles/{article_id}")
def read_article(
article_id: Annotated[int, Path(ge=1, le=10000)],
q: Annotated[str | None, Query(max_length=50)] = None
):
return {"id": article_id, "query": q}
```