tRPC Nedir?
tRPC, TypeScript ile yazılmış uygulamalarda istemci ve sunucu arasında otomatik tip çıkarımı sağlayan bir kütüphanedir. End-to-end type safety sayesinde API kontratlarını manuel olarak senkronize tutma ihtiyacını ortadan kaldırır.
tRPC ile bir API uç noktası tanımladığınızda, istemci tarafında otomatik olarak doğru tiplerle kullanabilirsiniz. REST veya GraphQL'e kıyasla çok daha az boilerplate kod yazmanız gerekir.
Kurulum ve Yapılandırma
tRPC'yi bir Next.js projesine eklemek oldukça basittir. Öncelikle gerekli paketleri yükleyip bir router tanımlamanız yeterlidir. @trpc/server ve @trpc/client paketleri temel bağımlılıklardır.
Sunucu tarafında prosedürlerinizi tanımlar, istemci tarafında ise bu prosedürleri otomatik tamamlama desteğiyle çağırırsınız.
Router ve Prosedürler
tRPC'de API uç noktalarınızı router ve procedure kavramlarıyla organize edersiniz. Query (veri okuma), mutation (veri yazma) ve subscription (gerçek zamanlı) olmak üzere üç tür prosedür vardır.
query: Veri okuma işlemleri için mutation: Veri yazma ve güncelleme işlemleri için subscription: Gerçek zamanlı veri akışları için middleware: Kimlik doğrulama ve yetkilendirme için
Zod Entegrasyonu
tRPC, Zod ile mükemmel bir uyum içinde çalışır. Zod şemaları ile giriş doğrulamasını otomatik olarak yapabilir ve tip çıkarımını sağlayabilirsiniz. Bu sayede hem doğrulama hem de tip güvenliği tek bir tanımla sağlanır.
Avantajları ve Dezavantajları
tRPC'nin en büyük avantajı, tip güvenliği ve geliştirici deneyimidir. Ancak, yalnızca TypeScript ekosisteminde çalışır ve üçüncü taraf istemciler için REST veya GraphQL kadar esnek değildir.