Как да изградим високопроизводителен API с FastAPI

2/20/2026
4 min read

Как да изградим високопроизводителен API с FastAPI

FastAPI е съвременен, бърз (ефективен) уеб фреймуърк, проектиран специално за изграждане на API. Той е базиран на Python типови подсказки и поддържа асинхронно програмиране, позволявайки на разработчиците да изграждат високопроизводителни, високо налични API услуги с ниска латентност. В тази статия ще ви представим подробно как да използвате FastAPI за изграждане на високопроизводителни API услуги, като ще разгледаме стъпка по стъпка процеса от настройка на средата до разполагане.

Първа стъпка: Подготовка на средата

Трябва да се уверите, че в разработващата ви среда е инсталиран Python 3.6+. Ако все още не е инсталиран, можете да посетите официалния сайт на Python за да изтеглите и инсталирате.

Инсталиране на FastAPI и Uvicorn

FastAPI сам по себе си не предоставя услуга, необходим е ASGI сървър, за да го хоства. Тук използваме Uvicorn, високопроизводителен ASGI сървър. Можете да инсталирате FastAPI и Uvicorn с помощта на следната команда:

pip install fastapi uvicorn

Втора стъпка: Изграждане на основен API

Нека създадем просто FastAPI приложение.

Създаване на файл за приложението

В директорията на проекта си, създайте Python файл, например main.py, и напишете следния код:

from fastapi import FastAPI

app = FastAPI()

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

В горния код първо импортираме FastAPI и създаваме инстанция app. След това дефинираме GET маршрут, който при достъп до кореновия път / връща просто JSON отговор.

Стартиране на сървъра

Стартирайте FastAPI сървъра си с помощта на следната команда:

uvicorn main:app --reload
  • main: обозначава името на файла, без разширението .py.
  • app: обозначава инстанцията на FastAPI.
  • --reload: в режим на разработка, сървърът автоматично се рестартира при промяна на файловете.

Трета стъпка: Дефиниране на маршрути и модели на данни

За да изградите сложен API, трябва да използвате Pydantic за дефиниране на модели на данни.

Създаване на модел на данни

Добавете следното съдържание в main.py:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_available: bool = True

Този код използва Pydantic за създаване на модел на данни Item, който съдържа три атрибута: име на продукта, цена и наличност.

Добавяне на нов маршрут

След това можем да дефинираме нов POST маршрут, за да приемем данни от тип Item:

@app.post("/items/")
async def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price}

В този маршрут FastAPI автоматично валидира входящите данни и ги мапира в модела Item.

Четвърта стъпка: Автоматично генериране на документация

Едно от най-големите предимства на FastAPI е, че може автоматично да генерира документация за API. Можете да видите документацията, като посетите следните адреси:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

В тези генерирани документи можете интерактивно да тествате API и да видите формата на заявките и отговорите за всеки маршрут.

Пета стъпка: Добавяне на удостоверяване

В реални приложения удостоверяването е важен аспект. Нека добавим просто удостоверяване на базата на роли.

Добавяне на зависимости за сигурност

Използвайте метода Depends на FastAPI и OAuth2PasswordBearer, за да реализирате удостоверяване:

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

async def fake_decode_token(token):
    return {"sub": token}

async def get_current_user(token: str = Depends(oauth2_scheme)):
    user = fake_decode_token(token)
    if user is None:
        raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Невалидни удостоверителни данни")
    return user

Защита на маршрути

След това можете да добавите удостоверяване към маршрутите, които искате да защитите:

@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
    return current_user

Шеста стъпка: Разполагане на FastAPI приложението

Когато завършите разработката, може да искате да разположите приложението на облачен сървър. Можете да изберете да използвате Docker за разполагане.

Създаване на Dockerfile

Създайте файл с име Dockerfile в директорията на проекта и въведете следното съдържание:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY ./app /app

Изграждане на Docker изображение

В терминала си използвайте следната команда, за да изградите Docker изображение:

docker build -t myfastapiapp .

Стартиране на Docker контейнер

Стартирайте FastAPI приложението си:

docker run -d --name fastapi -p 80:80 myfastapiapp

Резюме

В тази статия подробно разгледахме как да използвате FastAPI за изграждане на високопроизводителни API услуги, от подготовката на средата до създаването на основен API, дефинирането на маршрути и модели на данни, до добавяне на удостоверяване и разполагане. FastAPI предлага много мощни функции, които правят изграждането на съвременни API лесно и ефективно. Можете да разгледате официалната документация, за да откриете още функции и характеристики. Надявам се тази статия да ви помогне да се запознаете по-бързо с FastAPI и да повишите ефективността на разработката на вашите проекти!

Published in Technology

You Might Also Like

Как да използвате облачни технологии: Пълен наръчник за изграждане на вашата първа облачна инфраструктураTechnology

Как да използвате облачни технологии: Пълен наръчник за изграждане на вашата първа облачна инфраструктура

Как да използвате облачни технологии: Пълен наръчник за изграждане на вашата първа облачна инфраструктура Въведение С ус...

Предупреждение! Бащата на Claude Code открито заявява: След месец, без Plan Mode, титлата софтуерен инженер ще изчезнеTechnology

Предупреждение! Бащата на Claude Code открито заявява: След месец, без Plan Mode, титлата софтуерен инженер ще изчезне

Предупреждение! Бащата на Claude Code открито заявява: След месец, без Plan Mode, титлата софтуерен инженер ще изчезне ...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 С развитието на дълбокото обучение в различни области, все повече учебни ресурси и инструменти се ...

2026年 Top 10 AI 代理:核心卖点解析Technology

2026年 Top 10 AI 代理:核心卖点解析

2026年 Top 10 AI 代理:核心卖点解析 引言 С бързото развитие на изкуствения интелект, AI агенти (AI Agents) станаха гореща тема в тех...

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力Technology

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力

2026年 Top 10 AI 工具推荐:释放人工智能的真正潜力 В днешния ден, когато технологиите напредват с бързи темпове, изкуственият интелект (AI...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 В бързо развиващата се област на облачните изчисления, Amazon Web Services (AWS) винаги е била л...