Python ile web API geliştirme: Flask ve FastAPI
Flask ve FastAPI ile doğrulamalı, kimlik denetimli ve testli JSON API'leri yazar, yaygın web güvenlik hatalarından baştan kaçınırsın.
Seviye 301 · 18 ders · 18 pratik lab
Dersler
Flask
- Web isteğinin yaşam döngüsü ve WSGI
- Flask ile yollar, istek ve yanıt
- Şablonlar ve otomatik kaçış
- Formlar ve CSRF koruması
- Oturumlar ve güvenli çerez ayarları
- Kısa görev: Flask ile not defteri uygulaması
FastAPI
- FastAPI ile ilk API ve ASGI
- pydantic ile istek doğrulama
- Bağımlılık enjeksiyonu ve veritabanı oturumu
- Kimlik doğrulama: parola özeti ve belirteçler
- Yetkilendirme: başkasının kaydına erişimi engellemek
- Kısa görev: FastAPI ile envanter API'si
Üretime hazırlık
- API testleri: test istemcisi ile
- Hız sınırı ve tutarlı hata yanıtları
- CORS ve güvenlik başlıkları
- gunicorn ve uvicorn ile çalıştırmak
- Kısa görev: açıkları olan API'yi sıkılaştır
Bitirme
- Bitirme görevi: kimlik denetimli arıza kaydı API'si
Pratik lablar
- Flask rotasında yol parametresi doğrulamak: Ürün kimliğini int dönüştürücüyle alan bir Flask rotası yaz; bulunamayan ürün JSON gövdeli 404 dönsün.
- Şablonda kaçışı devre dışı bırakan satırı bulmak: Yorum sayfasında |safe yüzünden betik çalıştıran şablonu düzelt ve zararlı yorumun düz metin göründüğünü testle doğrula.
- Forma CSRF koruması eklemek: Parola değiştirme formuna oturuma bağlı CSRF belirteci ekle; belirteçsiz POST isteği 400 dönsün.
- Oturum çerezini sağlamlaştırmak: Oturum çerezine Secure, HttpOnly ve SameSite ayarlarını ekle, sabit gizli anahtarı ortamdan oku ve girişte oturumu yenile.
- Rezervasyon isteğini pydantic ile doğrulamak: Lavanta Otel rezervasyon uç noktası için tarih sırası ve kişi sayısı kurallarını denetleyen bir pydantic modeli yaz.
- Yanıttan gizli alanları çıkarmak: Kullanıcı uç noktasında parola özeti de dönen yanıtı response_model ile sınırla ve testle alanın dönmediğini kanıtla.
- Veritabanı oturumunu bağımlılıkla vermek: Global bağlantı kullanan uç noktaları yield'li bir bağımlılığa taşı ve testte bağımlılığı bellek içi veritabanıyla değiştir.
- Hata yanıtlarını tek biçime getirmek: Doğrulama, bulunamadı ve beklenmeyen hata durumlarını aynı JSON biçiminde dönen istisna işleyicileri yaz; iç ayrıntı sızmasın.
- Düz özetli parolaları güçlü özetle değiştirmek: SHA-256 ile parola saklayan kayıt kodunu tuzlu ve yavaş bir parola özetine geçir; eski kullanıcılar ilk girişte yükseltilsin.
- Süresi dolan belirteçleri reddetmek: İmzalı erişim belirtecine son kullanma süresi ekle ve süresi geçmiş ya da imzası bozuk belirteçlerde 401 dön.
- Başkasının kaydına erişimi kapatmak: Kimliği değiştirerek başka kullanıcının notunu döndüren uç noktaya sahiplik denetimi ekle ve regresyon testi yaz.
- Yönetici uç noktalarını role bağlamak: Rol denetimini tek bir bağımlılıkta topla, tüm yönetici rotalarına uygula ve korumasız rota kalmadığını testle tara.
- Test istemcisiyle CRUD akışını sınamak: Görev API'sinin oluştur, oku, güncelle ve sil akışını test istemcisiyle uçtan uca sına.
- Giriş denemelerini sınırlamak: Giriş uç noktasına IP başına dakikada beş deneme sınırı ekle; aşan isteklere Retry-After başlıklı 429 dön.
- Gevşek CORS ve eksik başlıkları düzeltmek: Her kökene izin veren CORS ayarını izinli liste ile değiştir ve güvenlik başlıklarını ekleyen ara katmanı testle doğrula.
- Hata ayıklama kipini ve ayrıntılı hataları kapatmak: Uygulamanın hata ayıklama kipini ortam ayarına bağla ve beklenmeyen hatalarda yığın izi yerine genel bir ileti döndür; ayrıntı yalnızca sunucu kaydına yazılsın.
- Testte bağımlılığı sahtesiyle değiştirmek: Test istemcisinde veritabanı bağımlılığını bellek içi bir sahtesiyle değiştir; her test temiz veriyle başlasın ve gerçek veritabanına dokunulmasın.
- Yetki kurallarını tabloyla sınamak: Üç rol ve tüm uç noktalar için beklenen durum kodlarını bir tablo olarak yaz ve parametreli testlerle doğrula; testlerin yakaladığı açık uç noktayı kapat.
Kurs hakkında
Flask ve FastAPI ile doğrulamalı, kimlik denetimli ve testli JSON API'leri yazar, yaygın web güvenlik hatalarından baştan kaçınırsın.
Ne öğreneceksin
- Flask
- FastAPI
- Üretime hazırlık
- Bitirme
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.