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

2/20/2026
4 min read

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

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

Чекор 1: Подготовка на средината

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

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

FastAPI сам по себе не нуди услуга, потребен е ASGI сервер за да го хостира. Овде ќе користиме Uvicorn, високоперформантен ASGI сервер. Можете да го инсталирате FastAPI и Uvicorn со следната команда:

pip install fastapi uvicorn

Чекор 2: Изградба на основен 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: во режим на развој, серверот автоматски се рестартира при промени во фајловите.

Чекор 3: Дефинирање на рути и модели на податоци

За да изградите сложен 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 моделот.

Чекор 4: Автоматско генерирање на документација

Една од најголемите предности на FastAPI е автоматското генерирање на API документација. Можете да ја видите посетувајќи ги следниве адреси:

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

Во овие генерирани документи, можете интерактивно да тестирајте го API-то и да видите форматите на барањата и одговорите за секоја рута.

Чекор 5: Додавање на автентикација

Во реални апликации, автентикацијата е важен аспект. Да додадеме едноставна автентикација базирана на улоги.

Додавање на безбедносни зависности

Користете ја FastAPI Depends методата и 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="Invalid authentication credentials")
    return user

Заштита на рутите

Потоа, можете да ја додадете автентикацијата на рутите кои треба да бидат заштитени:

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

Чекор 6: Распоредување на 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 година Топ 10 ресурси за длабоко учењеTechnology

2026 година Топ 10 ресурси за длабоко учење

2026 година Топ 10 ресурси за длабоко учење Со брзиот развој на длабокото учење во различни области, се појавуваат се по...

2026 година Топ 10 AI агенти: Анализа на основните карактеристикиTechnology

2026 година Топ 10 AI агенти: Анализа на основните карактеристики

2026 година Топ 10 AI агенти: Анализа на основните карактеристики Вовед Со брзиот развој на вештачката интелигенција, AI...

2026 година Топ 10 AI алатки препораки: Ослободување на вистинскиот потенцијал на вештачката интелигенцијаTechnology

2026 година Топ 10 AI алатки препораки: Ослободување на вистинскиот потенцијал на вештачката интелигенција

2026 година Топ 10 AI алатки препораки: Ослободување на вистинскиот потенцијал на вештачката интелигенција Во денешно вр...

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

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

2026年 Top 10 AWS工具和资源推荐 Во брзо развивачкиот облачен компјутинг сектор, Amazon Web Services (AWS) секогаш бил лидер, нуд...