# FastAPI

Adres: https://softwaredictionary.org/tr/terimler/fastapi
Kategori: Backend ve API'ler
Son güncelleme: 2026-10-03
Okunuşu: fest ey pi ay

Kısaca: FastAPI, standart tür ipuçlarıyla istekleri doğrulayan, veriyi dönüştüren ve OpenAPI dokümantasyonunu otomatik üreten modern bir Python API framework'üdür.

## FastAPI nedir?

FastAPI, Sebastián Ramírez tarafından geliştirildi ve 2018'de yayımlandı. Temel fikri, Python'da zaten yazdığınız tür ipuçlarının API'nizi tarif etmesidir. `item_id: int` ile tanımlanmış bir yol fonksiyonu ve bir Pydantic modeliyle türlendirilmiş bir gövde, FastAPI'ye ne bekleyeceğini söyler; o da gelen her isteği buna göre doğrular ve veri uymadığında açık hatalar döndürür.

Aynı türler dokümantasyon da üretir. Her FastAPI uygulaması bir OpenAPI şeması ve `/docs` adresinde etkileşimli bir dokümantasyon sunar; burada her endpoint'i okuyabilir ve tarayıcıdan deneyebilirsiniz. Editörler de türleri anlar; böylece otomatik tamamlama kodun her yerinde çalışır. `Depends` ile dependency injection, veritabanı oturumları ve kimlik doğrulama gibi ortak parçaları ele alır.

FastAPI, Starlette ve ASGI standardı üzerine kuruludur; bu yüzden `async` endpoint'leri, WebSocket'leri ve arka plan görevlerini destekler ve Uvicorn gibi sunucularda çalışır. Özellikle makine öğrenmesi model API'leri ve ayrı bir ön yüze JSON sunan backend'ler için en popüler Python web framework'lerinden biri oldu.

Sık yapılan bir yanlış, FastAPI'nin otomatik olarak her şeyden hızlı olduğunu düşünmektir. Async I/O sayesinde en hızlı Python framework'leri arasındadır; ama bir `async` fonksiyonun içindeki engelleyici kod, örneğin senkron bir veritabanı sürücüsü, sunucuyu kilitler; sıradan `def` endpoint'lerinin bir thread havuzunda çalışmasının nedeni de tam olarak budur.

## Önemli noktalar

- FastAPI, standart tür ipuçlarını kullanarak Python'da API'ler kurar.
- Türler, Pydantic modelleri üzerinden istek doğrulamasını yönlendirir.
- Etkileşimli OpenAPI dokümantasyonu /docs adresinde otomatik üretilir.
- Async öncelikli; Starlette ve ASGI üzerine kuruludur ve Uvicorn ile çalışır.
- Async endpoint'lerin içindeki engelleyici çağrılar bütün sunucuyu yavaşlatır.

## Örnek: Doğrulamalı, türlendirilmiş bir endpoint

```python
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field

app = FastAPI()

class BookIn(BaseModel):
    title: str = Field(min_length=1)
    year: int = Field(ge=1450)

books: dict[int, BookIn] = {}

@app.post("/books", status_code=201)
def create_book(book: BookIn):          # body validated against BookIn
    book_id = len(books) + 1
    books[book_id] = book
    return {"id": book_id, **book.model_dump()}

@app.get("/books/{book_id}")
def get_book(book_id: int):            # "abc" is rejected with a 422 error
    if book_id not in books:
        raise HTTPException(status_code=404, detail="Not found")
    return books[book_id]

# Run with:  uvicorn main:app --reload   → docs at http://localhost:8000/docs
```

## Sık sorulan sorular

**FastAPI mi Django mu?**

FastAPI, türe dayalı doğrulama ve async desteğiyle API'lere odaklanır. Django ise ORM, yönetim paneli, şablonlar ve kimlik doğrulama içeren tam bir framework'tür. FastAPI JSON API'lerine ve servislere, Django tam web uygulamalarına uyar.

**FastAPI mi Flask mı?**

İkisi de hafiftir. FastAPI, tür ipuçlarından otomatik doğrulama, async desteği ve üretilmiş dokümantasyon ekler. Flask ise daha eski ve daha basittir; çok büyük bir eklenti ekosistemi vardır.

**Pydantic nedir?**

Veriyi tür ipuçlarıyla doğrulayan bir Python kütüphanesidir. FastAPI, istek gövdelerini kontrol etmek ve yanıtları şekillendirmek için Pydantic modellerini kullanır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
