📝 Fastapi

Path и Query параметры в FastAPI

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
71
🌿
Уровень
Средний
🐦 💼 ✈️

FastAPI автоматически определяет: если параметр есть в пути {} — это path param, иначе — query param.

Path параметры

from fastapi import FastAPI, Path

app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id}

# С валидацией
@app.get("/items/{item_id}")
def get_item(item_id: int = Path(ge=1, le=1000)):
    return {"item_id": item_id}

Тип аннотация автоматически:
- Конвертирует строку из URL в нужный тип
- Валидирует значение
- Документирует в Swagger

Query параметры

from fastapi import Query

@app.get("/tasks/")
def list_tasks(
    status: str | None = None,                    # опциональный
    priority: int = 1,                            # с дефолтом
    q: str | None = Query(None, min_length=3),    # с валидацией
    limit: int = Query(20, ge=1, le=100),
):
    return {"status": status, "priority": priority, "q": q}
GET /tasks/?status=todo&priority=3&limit=10

Несколько значений

from typing import List

@app.get("/tasks/")
def list_tasks(tags: List[str] = Query([])):
    return {"tags": tags}

# GET /tasks/?tags=python&tags=django

Enum параметры

from enum import Enum

class TaskStatus(str, Enum):
    todo = "todo"
    in_progress = "in_progress"
    done = "done"

@app.get("/tasks/")
def list_tasks(status: TaskStatus | None = None):
    return {"status": status}

Смешанные параметры

@app.get("/projects/{project_id}/tasks/")
def list_project_tasks(
    project_id: int,             # path
    status: str | None = None,   # query
    limit: int = 20,             # query
):
    return {
        "project_id": project_id,
        "status": status,
        "limit": limit,
    }

FastAPI автоматически определяет: если параметр есть в пути {} — это path param, иначе — query param.

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Middleware и CORS в FastAPI

Позволяет браузерным клиентам обращаться к API с другого домена.

📅 30.06.2026 👁️ 84
📝

HTTPException в FastAPI

Охватываемые темы: Базовое использование, Коды статуса, Детали ошибки, Кастомные заголовки.

📅 30.06.2026 👁️ 91
📝

Dependency Injection в FastAPI

Depends — система внедрения зависимостей FastAPI для переиспользования кода.

📅 30.06.2026 👁️ 79

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!