FastAPI Projelerini Deploy Etme
Pydantic destekli, modern ve aşırı hızlı yapısıyla FastAPI, yeni nesil REST API'ler için standart haline geliyor. Skyversal, FastAPI projelerinizi asenkron (ASGI) Uvicorn sunucusuyla anında yayına alır.
Bu rehberde neler öğreneceksiniz?
- ✅ Gerekli gereksinimler (Uvicorn zorunluluğu)
- ✅ FastAPI app nesnesi algılama mantığı
- ✅ Ortam değişkenleri (Environment Variables)
- ✅ CORS ve Production ayarları
1. Gerekli Bağımlılıklar (requirements.txt)
FastAPI uygulamalarının production'da yüksek performansta (asenkron) çalışabilmesi için uvicorn sunucusuna ihtiyacı vardır. Bağımlılık dosyanızda şu iki paketin olduğundan emin olun:
2. FastAPI Uygulaması Nasıl Algılanır?
Skyversal, bağımlılıklarınız arasında fastapi paketini gördüğünde projenizi otomatik olarak Uvicorn ile başlatır.
Bunun için Skyversal sırasıyla şu dosyalardaki app = FastAPI() nesnesini arar:
-
main.py(Standart FastAPI davranışı) -
app.py -
api.py
Eğer uygulamanız klasör içinde veya farklı bir isimdeyse (örneğin src/server.py), Skyversal paneline gidip Settings > Environment Variables kısmına yeni bir değişken ekleyin:
Key: FASTAPI_APP
Value: src.server:app
3. CORS ve Ortam Değişkenleri
FastAPI ile bir API yazıyorsanız genellikle frontend tarafıyla (React, Vue vb.) haberleşirsiniz. Skyversal paneli üzerinden girdiğiniz URL'leri güvenli şekilde okuyarak CORS izinlerini ayarlayabilirsiniz:
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=[FRONTEND_URL],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get('/')
Sık Karşılaşılan Hatalar (Troubleshooting)
Çözüm: Uvicorn app nesnesini bulamıyor. Dosya isminizin main.py veya app.py olduğundan veya FASTAPI_APP değişkenini doğru tanımladığınızdan emin olun.
Çözüm: GitHub reponuzda requirements.txt dosyası yok veya yanlış dizinde.
Çözüm: Kodun en altında uvicorn.run(app, port=8000) çağrısı kullanıyorsanız bunu silebilirsiniz; Skyversal port yönetimini Uvicorn üzerinden otomatik yapar.
Hazırsınız! 🚀
Gerekli kütüphaneleri ekledikten sonra kodunuzu pushlayın. Skyversal, Uvicorn aracılığıyla FastAPI projenizi saniyeler içinde ayağa kaldıracaktır.