0Pricing
TypeScript Academy · Ders

tRPC Mimarisi

tRPC'nin API şeması tekrarını nasıl ortadan kaldırdığını öğrenin.

tRPC Mimarisi, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

Uçtan Uca Sorun

Tipik bir web uygulamasında sunucu bir API tanımlar ve istemci onu çağırır. Türlerini eşzamanlı tutmak zordur: sunucudaki bir alanı değiştirdiğinizde istemci çalışma zamanında sessizce bozulur. tRPC, türleri kod üretmeden doğrudan paylaşarak bu sorunu çözer.

// Server: returns { id: number; name: string }
// Client: must know that shape exactly
// Without sync: runtime errors when they drift

tRPC Nedir

tRPC, TypeScript'te türleri tamamen belirlenmiş API'ler oluşturmak için kullanılan bir kütüphanedir. Sunucu yordamları tanımlar; istemci ise bunları yerel işlevlermiş gibi çağırır ve sunucu kodundan çıkarılan eksiksiz otomatik tamamlama ile tür denetiminden yararlanır.

// Client call looks like a local function:
// const user = await client.user.byId.query(1);
// user is typed automatically from the server

Kod Üretimi Yok

GraphQL veya OpenAPI iş akışlarının aksine tRPC, kod üretimi adımına ihtiyaç duymaz. Derlenecek bir şema dosyası veya oluşturulmuş bir istemci yoktur. Türler, derleme zamanında yalnızca TypeScript çıkarımı yoluyla sunucudan istemciye aktarılır.

// No .graphql files, no generated SDK
// Just import a type from the server package

Yönlendirici Sözleşmedir

tRPC'nin merkezinde yönlendirici bulunur. Bu, yordamlar (sorgular ve değişiklikler) ağacıdır. Sunucudaki yönlendirici nesnesi ve özellikle ondan çıkarılan türü, istemciyle paylaşılan tek doğruluk kaynağıdır.

// appRouter (server) defines every procedure
// type AppRouter = typeof appRouter is the contract

Türler Nasıl Paylaşılır

Sunucu, yönlendiricisinin yalnızca türünü, uygulamasını değil, dışa aktarır. İstemci bu türü içe aktarır ve bunu vekil istemcinin türünü belirlemek için kullanır. Sunucu kodu tarayıcıya gönderilmez; yalnızca derleme zamanında silinen türler paylaşılır.

// server.ts
export type AppRouter = typeof appRouter;

// client.ts
import type { AppRouter } from '../server';

Sorgular ve Mutasyonlar

Prosedürler iki ana türe ayrılır. Bir sorgu verileri okur ve genellikle eş etkilidir. Bir mutasyon verileri değiştirir. Bu ayrım, önbelleğe alma ve HTTP davranışlarıyla eşleşir ve istemcinin bunları çağırma biçimini belirler.

// client.user.list.query()      -> read
// client.user.create.mutate(...) -> write

Çalışma Zamanı ve Türler

tRPC'nin iki katmanı vardır. Çalışma zamanında çağrılar, bir uyarlayıcı tarafından işlenen HTTP üzerinden JSON olarak iletilir. Derleme zamanında paylaşılan AppRouter türü, her çağrının bütünüyle denetlenmesini sağlar. Çalışma zamanı katmanı yalındır; asıl değer tür güvenliğidir.

// Runtime: POST /trpc/user.byId  body: {"input":1}
// Types: client.user.byId.query(1) is checked end to end

Tür Çıkarımı Neden Kod Üretiminden Üstündür

Türler çıkarıldığı için unutulacak bir eşitleme adımı yoktur. Bir prosedürü düzenlediğinizde istemci değişikliği hemen yansıtır; çağrıların artık eşleşmediği yerlerde kırmızı dalgalı çizgiler görünür. Geri bildirim anında gelir ve düzenleyicinizde görünür.

// Add a required input field on the server
// -> every client call missing it becomes a type error

tRPC Nerede Kullanılır

tRPC, istemci ile sunucunun aynı kod tabanını paylaştığı tam yığın TypeScript tek depolu projelerde, örneğin Next.js uygulamalarında, öne çıkar. Başka diller tarafından kullanılan genel API'ler için uygun değildir; bunlar için OpenAPI veya GraphQL gibi dilden bağımsız bir şema kullanmak istersiniz.

// Great: Next.js app, shared types, internal API
// Not ideal: public API for non-TS consumers

Genel Çerçeve

Akış şöyledir: bir yönlendiricide prosedürler tanımlanır, yönlendirici türü dışa aktarılır, bir HTTP uyarlayıcısı bağlanır ve bu türden türü belirlenmiş bir istemci oluşturulur. Her çağrı, hiç kod üretilmeden sunucu sözleşmesine göre denetlenir. Sonraki derslerde her parça ayrı ayrı oluşturulacaktır.

// Roadmap:
// 1. initTRPC + procedures + appRouter
// 2. export AppRouter, create typed client
// 3. context + middleware for auth

Derleyiciye Güvenin

Zihniyet değişikliği şudur: API sözleşmesi belgelerde veya yalnızca çalışma zamanı doğrulamasında değil, türlerde yaşar ve derleyici tarafından uygulanır. Derleniyorsa istemci ile sunucu aynı fikirde demektir. Bu güvenceye "uçtan uca tür güvenliği" denir.

// If client.ts compiles, it matches the current server.

Kısa Değerlendirme

tRPC mimarisi hakkındaki anlayışınızı sınayın.

Özet

tRPC modelini öğrendiniz.

  • Yönlendirici sözleşmedir; yönlendiricinin türü tek doğruluk kaynağıdır.
  • Sunucu yalnızca AppRouter türünü, kodu değil, dışa aktarır.
  • Sorgular okur, mutasyonlar yazar; çalışma zamanı HTTP üzerinden JSON kullanır.
  • Tür güvenliği, kod üretimi adımı olmadan tür çıkarımından gelir.

Sıradaki konu: yönlendiricileri ve prosedürleri tanımlamak.

Sıkça Sorulan Sorular

“tRPC Mimarisi” dersi ücretsiz mi?

Evet — “tRPC Mimarisi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“tRPC Mimarisi” dersinde ne öğreneceğim?

tRPC'nin API şeması tekrarını nasıl ortadan kaldırdığını öğrenin. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“tRPC Mimarisi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. tRPC Mimarisi
  2. Yönlendiricileri ve Prosedürleri Tanımlama
  3. İstemci-Sunucu Tür Çıkarımı
  4. Ara Katman ve Bağlam
← TypeScript Academy Sayfasına Dön