Как да изградим високопроизводителен 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 Buddy 修改指南:如何获得闪光传说级宠物

Claude Code Buddy 修改指南:如何获得闪光传说级宠物 2026年4月1日,Anthropic 在 Claude Code 2.1.89 版本中悄然上线了一个彩蛋功能——/buddy 宠物系统。在终端输入 /buddy 后,一...

Obsidian пусна Defuddle, повишавайки Obsidian Web Clipper до ново нивоTechnology

Obsidian пусна Defuddle, повишавайки Obsidian Web Clipper до ново ниво

Obsidian пусна Defuddle, повишавайки Obsidian Web Clipper до ново ниво Винаги съм харесвал основната концепция на Obsid...

OpenAI внезапно обяви "три в едно": сливане на браузър, програмиране и ChatGPT, вътрешно признавайки, че е поело грешен курс през последната годинаTechnology

OpenAI внезапно обяви "три в едно": сливане на браузър, програмиране и ChatGPT, вътрешно признавайки, че е поело грешен курс през последната година

OpenAI внезапно обяви "три в едно": сливане на браузър, програмиране и ChatGPT, вътрешно признавайки, че е поело грешен ...

2026, не се насилвайте да бъдете "дисциплинирани"! Правете тези 8 малки неща и здравето ще дойде естественоHealth

2026, не се насилвайте да бъдете "дисциплинирани"! Правете тези 8 малки неща и здравето ще дойде естествено

2026, не се насилвайте да бъдете "дисциплинирани"! Правете тези 8 малки неща и здравето ще дойде естествено Нова година...

Майките, които се опитват да отслабнат, но не успяват, определено са попаднали тукHealth

Майките, които се опитват да отслабнат, но не успяват, определено са попаднали тук

Майките, които се опитват да отслабнат, но не успяват, определено са попаднали тук Март вече е наполовина, как върви тв...

📝
Technology

AI Browser 24小时稳定运行指南

AI Browser 24小时 стабилен режим на работа Този урок представя как да настроите стабилна, дългосрочна среда за работа с AI...