logologo

FastAPI

Bilişim Ve İletişim Teknolojileri+1 Daha
fav gif
Kaydet
viki star outline
Orijinal Yazar
Sebastián Ramírez (tiangolo)
Geliştiriciler
Sebastián Ramírez ve Topluluk
Platformlar
WindowsLinuxMacOS
İlk Yayınlanma
5 Aralık 2018
Tür
Yazılım Framework'ü
Lisans
MIT Lisansı
Resmi Sitesi
https://fastapi.tiangolo.com/
Kod Deposu
https://github.com/fastapi/fastapi

FastAPI; HTTP tabanlı API servisleri geliştirmek için geliştirilmiş modern, hızlı ve yüksek performanslı bir Python web framework'üdür. İlk defa 5 Aralık 2018'de Sebastián Ramírez tarafından geliştirilmeye başlanmıştır. Python ve FastAPI bileşenlerinin uyumlu olduğu her platformda (Windows, Linux, MacOS gibi) çalıştırılabilmektedir. Python 3.8 ve üzeri sürümlerde kullanılabilmektedir.

Öne Çıkan Özellikler

Hız: Oldukça yüksek performansa sahiptir, Starrlette ve Pydantic sayesinde NodeJS ve Go ile aynı seviyededir. Özellikle bu sebeple diğer Python API framework'leri arasında öne çıkar.

Programlamada Hız: FastAPI, geliştiricilerin işini basitliği sayesinde hızlandırır. 

Daha Az Hata: Geliştiricilerden kaynaklanan hataları büyük oranda azaltır.

Otomatik Tamamlama: Geniş editör desteği bulunmaktadır. Pek çok farklı IDE'de auto-complete (IntelliSense) desteklernir.

Kolaylık: Öğrenme ve kullanma kolaylığı göz önüne alınarak tasarlanmıştır. Bu sebeple halihazırda Python bilen ve hızlı bir şekilde API geliştirmek isteyen kişiler için birebirdir.

Kısalık: Kod kopyalarını olabildiğince azaltır ve kodun temiz olmasını sağlar.

Sağlamlık: Kod hemen üretime hazır hale getirilebilir. İnteraktif dökümantasyona sahip olması süreci kolaylaştırır.

Standartlara Dayalı: FastAPI, OpenAPI【1】 (eskiden Swagger olarak biliniyordu) ve JSON Schema【2】 'ya dayalıdır ve bunlarla tamamen uyumludur.

Asenkron Desteği: Daha iyi performans için async ve await anahtar kelimelerini (keywords) destekler. 

Dahili Güvenlik: Yaygın güvenlik sorunlarından korunmak için OAuth2, JWT ve istek doğrulama mekanizmalarını içerir.

Bileşenler ve Gereksinimler

FastAPI, veri doğrulaması için Pydantic【3】  ve asenkron işlevselliği desteklemek için Swagger【4】  kullanır:

  • Pydantic: Python için bir veri doğrulaması kütüphanesidir. Bir IDE kullanırken açıklamalara dayalı tür ipuçları sağlar, otomatik tamamlama (auto-complete) sayesinde hata ayıklamayı kolaylaştırır.
  • Starlette【5】 : Asenkron işlevselliği desteklemek için kullanılan hafif bir framework'tür.
  • Uvicorn【6】 : Asenkron framework'ler için minimal düzeyde ve düşük seviyeli bir web sunucusudur.
  • OpenAPI: FastAPI, otomatik olarak OpenAPI standartlarına uygun API dokümantasyonları (SwaggerUI ve ReDoc) üretir. Böylece geliştiriciler gerçek zamanlı olarak API'ları test edebilir. SwaggerUI, /docs; ReDoc ise /redoc adresinden erişilebilir.

Kurulum

Python sanal ortamınızı oluşturup etkinleştirin. Sonra sanal ortamın etkinleştirildiği terminalde bu kodu kullanarak FastAPI'ı indirin:

pip install "fastapi[standard]"

Bu komut, FastAPI'ı standart kütüphaneleriyle indirir. Eğer sadece FastAPI'ı indirmek istiyorsanız bu komutu da kullanabilirsiniz:

pip install fastapi

Örnek

Basit bir FastAPI uygulaması örneği:

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
  return {"Hello": "World"}

Geliştirme aşamasında kodu makinede yürütmek için bu komut kullanılır (eğer yürütülecek dosya main.py ise):

fastapi dev main.py

veya Uvicorn ile:

uvicorn main:app --reload

Üretim aşamasında kodu makinede yürütmek için bu komut kullanılır (eğer yürütülecek dosya main.py ise):

fastapi run main.py

veya Uvicorn ile:

uvicorn main:app --host 0.0.0.0 --port 80

İnteraktif API Dokümantasyonu

SwaggerUI aracılığıyla oluşturulan dokümantasyona [url'niz]/docs, ReDoc ile oluşturulan dokümantasyona [url'niz]/redoc üzerinden ulaşılabilir.

Kaynakça

Sebastián Ramírez (tiangolo). “FastAPI History, Design and Future.” FastAPI geçmişi resmi sayfası. Erişim: 11 Ağustos 2025. https://fastapi.tiangolo.com/history-design-future/.

Sebastián Ramírez (tiangolo). “FastAPI Benchmarks.” FastAPI kıyaslamalar ve hız resmi sayfası. Erişim: 11 Ağustos 2025. https://fastapi.tiangolo.com/benchmarks/.

Sebastián Ramírez (tiangolo). “FastAPI Logo.” FastAPI resmi logosu. Erişim: 11 Ağustos 2025. https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png.

Dipnotlar

[1]

OpenAPI Initiative. “OpenAPI Specification.” OpenAPI resmi web sitesi. Erişim: 11 Ağustos 2025. https://www.openapis.org/.

[2]

JSON Schema Working Group. “JSON Schema.” Resmi JSON Schema web sitesi. Erişim: 11 Ağustos 2025. https://json-schema.org/.

[3]

Samuel Colvin. "Pydantic." Pydantic resmi sitesi. Erişim 11 Ağustos 2025. https://pydantic.dev/.

[4]

SmartBear Software. "Swagger." Swagger resmi sitesi. Erişim: 11 Ağustos 2025. https://swagger.io/.

[5]

Tom Cristie. "Starlette." Starlette resmi sitesi. Erişim: 11 Ağustos 2025. https://www.starlette.io/.

[6]

Tom Christie. "Uvicorn." Uvicorn resmi sitesi. Erişim: 11 Ağustos 2025. https://www.uvicorn.org/.

Ayrıca Bakınız

Yazarın Önerileri

Python Programlama DiliPy

Python Programlama Dili

Matematik +1
Python Virtual Environment (Sanal Ortam)Py

Python Virtual Environment (Sanal Ortam)

Bilişim Ve İletişim Teknolojileri +2

Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
Ana YazarMuhammed Nabi Yıldız11 Ağustos 2025 12:18
KÜRE'ye Sor