📝 Fastapi

FastAPI: основы

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

FastAPI — современный Python фреймворк для создания API. Автоматическая документация, типизация, высокая производительность.

Установка

pip install fastapi uvicorn

Первое приложение

# main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello, World!"}

@app.get("/items/{item_id}")
def get_item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}
uvicorn main:app --reload

Запуск и документация

  • Приложение: http://127.0.0.1:8000
  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

Path параметры

@app.get("/users/{user_id}")
def get_user(user_id: int):  # автоматическая валидация типа
    return {"user_id": user_id}

@app.get("/files/{file_path:path}")  # путь с /
def get_file(file_path: str):
    return {"path": file_path}

Query параметры

@app.get("/tasks/")
def list_tasks(
    status: str | None = None,
    limit: int = 20,
    offset: int = 0,
):
    return {"status": status, "limit": limit, "offset": offset}

GET /tasks/?status=todo&limit=10

POST с телом запроса

from pydantic import BaseModel

class TaskCreate(BaseModel):
    title: str
    status: str = "todo"
    priority: int = 1

@app.post("/tasks/", status_code=201)
def create_task(task: TaskCreate):
    return {"id": 1, **task.model_dump()}

HTTP методы

@app.get("/tasks/{id}")       # получить
@app.post("/tasks/")          # создать
@app.put("/tasks/{id}")       # заменить
@app.patch("/tasks/{id}")     # обновить частично
@app.delete("/tasks/{id}")    # удалить

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

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

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

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

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

🔗 Похожие

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

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

📝

Что такое ORM

ORM (Object-Relational Mapping) — технология, позволяющая работать с базой данных через объекты Python вместо SQL.

📅 30.06.2026 👁️ 122
📝

AI-агенты: ReAct loop и автономные действия

Чат-бот отвечает на вопросы. Агент — действует: вызывает инструменты, получает реальные данные и использует их...

📅 30.06.2026 👁️ 97
📝

Pydantic v2: валидация данных в Python

Pydantic — библиотека для валидации данных через аннотации типов. Версия 2 переписана на Rust и...

📅 30.06.2026 👁️ 82

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

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