FastAPI WebSocket'te Tip Güvenliği: TypeScript'e Compile Hata Vermek – webdedik gönderisi

FastAPI WebSocket'te Tip Güvenliği: TypeScript'e Compile Hata Vermek

WebSocket geliştirirken yaşanan en sinir bozucu hata, frontend'in undefined değer okuması ve sessizce başarısız olmasıdır. Sunucu tarafında bir alanı `text`'ten `body`'ye çevirdin mi, TypeScript'te hiçbir şey kırmıyor, sadece boş chat balonu görüyorsun. Saatlerce debug etmeye hazır ol.

[FastAPI WebSocket'leri tip güvenliği sağlamak için Pydantic modellerle yapılandırma][kaynak], HTTP route'larının OpenAPI şeması gibi aynı faydayı verir. Sunucudan otomatik TypeScript client ürettiğinde, alan adı değişirse compile zamanında yakalanır. Artık runtime'da sessiz başarısızlık yok.

Praktik olarak, her WebSocket mesajını bir Pydantic modeli olarak tanımla. Sunucu gönderdiğinde `ChatNotificationPayload` modeli var, TypeScript client bunu okur. Alanı `text`'ten `body`'ye değiştirirsen, TypeScript derleyicisi hemen `Property 'text' does not exist` hatası fırlatır. Compile etmeden deploy etmezsin.

AsyncAPI dokümantasyonu da otomatik oluşur, HTTP'nin `/docs` sayfası gibi WebSocket'ler için de bir referans dokunuz olur. Takım üyeleri ne mesaj gönderilip alındığını net görebilir.


       


       
       
       


       

YouTube videosu: YouTube Videosu


Bu yaklaşım, başlangıçta biraz kurulum gerektirir ama bir kez ayarladıktan sonra tip hatalarından kurtulursun. Özellikle çok mesaj türü olan chat uygulamalarında, bu güvenlik ağı çok değerlidir. Bir alanı yanlış adlandırma riski ortadan kalkar.

konu hakkında tepkinizi verebilirsiniz