FastAPI ile Yüksek Performanslı API Servisi Nasıl Oluşturulur

2/20/2026
3 min read

FastAPI ile Yüksek Performanslı API Servisi Nasıl Oluşturulur

FastAPI, API oluşturmak için tasarlanmış modern, hızlı (verimli) bir web çerçevesidir. Python tür ipuçlarına dayanmaktadır ve asenkron programlamayı destekler, geliştiricilerin yüksek performanslı, yüksek kullanılabilirlikte ve düşük gecikmeli API hizmetleri oluşturmalarına olanak tanır. Bu makalede, FastAPI kullanarak yüksek performanslı API hizmetleri oluşturmanın adım adım nasıl yapılacağını detaylı bir şekilde açıklayacağız, çevre kurulumundan dağıtıma kadar olan süreci gerçekleştirmenize yardımcı olacağız.

Adım 1: Çevre Hazırlığı

Geliştirme ortamınızda Python 3.6+ yüklü olduğundan emin olmalısınız. Eğer henüz yüklemediyseniz, Python resmi web sitesine giderek indirip yükleyebilirsiniz.

FastAPI ve Uvicorn Yükleme

FastAPI kendisi bir hizmet sunmaz, bir ASGI sunucusuna ihtiyaç duyar. Burada yüksek performanslı bir ASGI sunucusu olan Uvicorn kullanıyoruz. FastAPI ve Uvicorn'u yüklemek için aşağıdaki komutu kullanabilirsiniz:

pip install fastapi uvicorn

Adım 2: Temel API Oluşturma

Basit bir FastAPI uygulaması oluşturalım.

Uygulama Dosyası Oluşturma

Proje dizininizde, örneğin main.py adında bir Python dosyası oluşturun ve içine aşağıdaki kodu yazın:

from fastapi import FastAPI

app = FastAPI()

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

Yukarıdaki kodda, önce FastAPI'yi içe aktarıp bir app örneği oluşturduk. Ardından, kök yolu / erişildiğinde basit bir JSON yanıtı döndüren bir GET rotası tanımladık.

Sunucuyu Başlatma

FastAPI sunucunuzu başlatmak için aşağıdaki komutu kullanın:

uvicorn main:app --reload
  • main: Dosya adını belirtir, .py uzantısı olmadan.
  • app: FastAPI örneğini belirtir.
  • --reload: Geliştirme modunda, dosya değiştiğinde sunucuyu otomatik olarak yeniden başlatır.

Adım 3: Rotaları ve Veri Modellerini Tanımlama

Karmaşık bir API oluşturmak için Pydantic kullanarak veri modelleri tanımlamanız gerekir.

Veri Modeli Oluşturma

main.py dosyasına aşağıdaki içeriği ekleyin:

from pydantic import BaseModel

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

Bu kod, Pydantic kullanarak bir Item veri modeli oluşturur; bu model ürün adı, fiyatı ve kullanılabilirlik durumu gibi üç özelliği içerir.

Yeni Rota Ekleme

Ardından, Item türündeki verileri almak için yeni bir POST rotası tanımlayabiliriz:

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

Bu rotada, FastAPI gelen verileri otomatik olarak doğrular ve bunları Item modeline eşler.

Adım 4: Otomatik Belge Oluşturma

FastAPI'nin en büyük avantajlarından biri, API belgelerini otomatik olarak oluşturabilmesidir. Aşağıdaki adresi ziyaret ederek belgeleri görüntüleyebilirsiniz:

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

Bu oluşturulan belgelerde, API'yi etkileşimli bir şekilde test edebilir, her bir rotanın istek ve yanıt formatını görebilirsiniz.

Adım 5: Kimlik Doğrulama Ekleme

Gerçek uygulamalarda kimlik doğrulama önemli bir aşamadır. Basit bir rol tabanlı kimlik doğrulama ekleyelim.

Güvenlik Bağımlılıkları Ekleme

FastAPI'nin Depends yöntemini ve OAuth2PasswordBearer kullanarak kimlik doğrulama gerçekleştirin:

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="Geçersiz kimlik doğrulama bilgileri")
    return user

Rotaları Koruma

Ardından, koruma gerektiren rotalara kimlik doğrulama ekleyebilirsiniz:

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

Adım 6: FastAPI Uygulamasını Dağıtma

Geliştirmeyi tamamladıktan sonra, uygulamanızı bulut sunucusuna dağıtmanız gerekebilir. Docker kullanarak dağıtım yapmayı seçebilirsiniz.

Dockerfile Oluşturma

Proje dizininde Dockerfile adında bir dosya oluşturun ve aşağıdaki içeriği girin:

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

COPY ./app /app

Docker Görüntüsü Oluşturma

Terminalinizde aşağıdaki komutu kullanarak Docker görüntüsünü oluşturun:

docker build -t myfastapiapp .

Docker Konteynerini Çalıştırma

FastAPI uygulamanızı çalıştırın:

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

Özet

Bu makalede, FastAPI kullanarak yüksek performanslı API hizmetleri oluşturmanın detaylarını, çevre hazırlığından temel API oluşturmaya, rotaları ve veri modellerini tanımlamaya, kimlik doğrulama eklemeye ve dağıtım sürecine kadar olan tam süreci açıkladık. FastAPI, modern API'leri oluşturmayı basit ve verimli hale getiren birçok güçlü özellik sunar, resmi belgeleri inceleyerek daha fazla özellik ve işlev keşfedebilirsiniz. Umarım bu makale, FastAPI'ye daha hızlı bir şekilde başlamanıza ve proje geliştirme verimliliğinizi artırmanıza yardımcı olur!

Published in Technology

You Might Also Like