0Pricing
TypeScript Academy · Ders

Yönlendiricileri ve Prosedürleri Tanımlama

Girdi doğrulamasıyla sorgular ve değişiklik işlemleri oluşturun.

Yönlendiricileri ve Prosedürleri Tanımlama, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 2. 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.

tRPC'yi Başlatma

Her tRPC arka ucu, initTRPC kullanarak bir örnek oluşturarak başlar. Bu örnek, yönlendiriciler ve prosedürler için oluşturucular döndürür. Genellikle bu örneği bir kez oluşturur ve ihtiyaç duyduğunuz parçaları dışa aktarırsınız.

import { initTRPC } from '@trpc/server';

const t = initTRPC.create();
export const router = t.router;
export const publicProcedure = t.procedure;

İlk Prosedür

Bir prosedür tek bir API uç noktasıdır. En basit prosedür, bir değer döndüren sorgudur. publicProcedure.query, girdi almayan ve okunabilen bir uç nokta tanımlar.

import { router, publicProcedure } from './trpc';

const appRouter = router({
  health: publicProcedure.query(() => 'ok'),
});

Girdiyi Doğrulama

Prosedürler girdilerini bir doğrulayıcıyla, genellikle bir zod şemasıyla, bildirir. .input(schema) hem çalışma zamanında doğrulama yapar hem de çözümleyici ile istemci için girdi türünü çıkarır.

import { z } from 'zod';

const greet = publicProcedure
  .input(z.object({ name: z.string() }))
  .query(({ input }) => 'Hello, ' + input.name);

Girdiyi Okuma

Çözümleyicinin içinde doğrulanmış girdi input olarak kullanılabilir ve türü şemadan bütünüyle belirlenir. Elle dönüştürme yapmanız gerekmez; zod ile tRPC, yapıyı birlikte çıkarır.

const byId = publicProcedure
  .input(z.object({ id: z.number() }))
  .query(({ input }) => {
    // input.id is number
    return { id: input.id, name: 'Alice' };
  });

Mutasyonlar

Verileri değiştiren işlemler için .mutation kullanın. Yapı bir sorguyla aynıdır, ancak bir yazma işlemini belirtir; bu da istemcinin önbelleğe alma davranışını ve HTTP yöntemini etkiler.

const createUser = publicProcedure
  .input(z.object({ name: z.string() }))
  .mutation(({ input }) => {
    return { id: 1, name: input.name };
  });

appRouter Oluşturma

Bir nesneyi router(...) işlevine geçirerek prosedürleri bir yönlendiricide toplayın. Her anahtar, çağrılabilir bir prosedür adına dönüşür. Bu appRouter, API'nizin tamamıdır.

const appRouter = router({
  greet,
  byId,
  createUser,
});

İç İçe Yönlendiriciler

Yönlendiriciler, büyük API'leri düzenlemek için iç içe yerleştirilir. Yönlendirici nesnesindeki bir değer, kendisi de bir yönlendirici olabilir; böylece user.byId gibi ad alanı içeren çağrılar oluşturulur.

const userRouter = router({ byId, createUser });

const appRouter = router({
  user: userRouter,
  greet,
});
// call paths: user.byId, user.createUser, greet

Yönlendirici Türünü Dışa Aktarma

En önemli dışa aktarma, yönlendiricinin türüdür. İstemci, tam tür güvenliği kazanmak için bu türü içe aktarır. Sunucu uyarlayıcısı için değeri, istemci için de türü dışa aktarın.

export const appRouter = router({ user: userRouter });
export type AppRouter = typeof appRouter;

Bir Uyarlayıcı Ekleme

Yönlendiriciyi HTTP üzerinden sunmak için bir uyarlayıcı bağlayın. tRPC; bağımsız Node, Express, Next.js, Fetch ve daha fazlası için uyarlayıcılar sağlar. Uyarlayıcı, gelen istekleri prosedür çağrılarına dönüştürür.

import { createHTTPServer } from '@trpc/server/adapters/standalone';

createHTTPServer({ router: appRouter }).listen(3000);

Dosyaları Düzenleme

Yaygın bir düzen şöyledir: initTRPC ile dışa aktarılan router/publicProcedure parçalarını içeren bir trpc.ts dosyası, kendi dosyalarında bulunan özellik yönlendiricileri ve bunları birleştiren bir kök appRouter. initTRPC öğesini tek bir yerde tutmak, birden çok örnek oluşturulmasını önler.

// trpc.ts: initTRPC.create(), export router + publicProcedure
// routers/user.ts: userRouter
// router.ts: appRouter = router({ user: userRouter })

Girdi Türü Çıkarımının Özeti

.input(schema) hem doğrulama yaptığı hem de tür çıkardığı için şemayı bir kez yazıp bir çalışma zamanı denetimi ile statik bir tür elde edersiniz. İstemci, her prosedürün beklediği girdiyi tam olarak bu şemalardan türetilmiş biçimde görür.

const search = publicProcedure
  .input(z.object({ q: z.string(), page: z.number().optional() }))
  .query(({ input }) => ({ q: input.q, page: input.page ?? 1 }));

Kısa Değerlendirme

Yönlendiriciler ve prosedürler hakkındaki anlayışınızı sınayın.

Özet

Bir tRPC arka ucu oluşturdunuz.

  • initTRPC.create(), router ve procedure oluşturucularını sağlar.
  • .input(schema), girdiyi doğrular ve türünü çıkarır.
  • .query okur; .mutation yazar.
  • Prosedürleri appRouter içinde birleştirin ve type AppRouter = typeof appRouter ifadesini dışa aktarın.

Sıradaki konu: bunu tamamen türü belirlenmiş bir istemciyle kullanmak.

Sıkça Sorulan Sorular

“Yönlendiricileri ve Prosedürleri Tanımlama” dersi ücretsiz mi?

Evet — “Yönlendiricileri ve Prosedürleri Tanımlama” 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.

“Yönlendiricileri ve Prosedürleri Tanımlama” dersinde ne öğreneceğim?

Girdi doğrulamasıyla sorgular ve değişiklik işlemleri oluşturun. 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 2. dersidir.

“Yönlendiricileri ve Prosedürleri Tanımlama” 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