0Pricing
TypeScript Academy · Ders

Uçtan Uca Tür Güvenliği: Önce Şema İş Akışı

Şemadan istemciye kadar tek bir doğruluk kaynağını koruyun

Uçtan Uca Tür Güvenliği: Önce Şema İş Akışı, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 4. 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.

Schema Öncelikli Nedir?

Schema öncelikli yaklaşımda GraphQL schema, tek doğru bilgi kaynağıdır. Ön yüz türleri, arka uç çözücüleri ve API sözleşmeleri schema'dan türetilir; böylece hiçbir katman eşzamanlılığını kaybetmez.

# The workflow:
# 1. Define schema (.graphql or SDL)
# 2. Generate server resolver types
# 3. Generate client operation types
# 4. Both sides automatically stay in sync

Schema Tanımlama

GraphQL schema'nızı SDL (.graphql dosyaları) içinde yazın ve istemci ile sunucu arasındaki sözleşme olarak depoya kaydedin.

# schema.graphql
type User {
  id: ID!
  name: String!
  email: String!
}

type Query {
  user(id: ID!): User
}

Sunucu: Çözücü Türlerini Oluşturma

Schema'dan türleri belirlenmiş çözücü imzaları oluşturmak için typescript-resolvers eklentisiyle kod oluşturmayı çalıştırın.

# Server codegen step
npx graphql-codegen --config codegen.server.yml

İstemci: İşlem Türlerini Oluşturma

.graphql işlem dosyalarından türleri belirlenmiş kancalar oluşturmak için kod oluşturmayı typescript-operations ve Apollo/urql eklentileriyle çalıştırın.

# Client codegen step
npx graphql-codegen --config codegen.client.yml

Bozan Değişiklikleri Belirleme

Bozan schema değişikliklerini (alanların kaldırılması, türlerin değiştirilmesi) üretim ortamına ulaşmadan önce belirlemek için graphql-inspector kullanın.

npx graphql-inspector diff ./api/schema.graphql ./api/schema.new.graphql
# Reports: BREAKING: Field 'User.email' was removed

Schema Kayıt Defteri

Bir schema kayıt defteri (Apollo Studio, Hive), schema sürümlerini saklar, zaman içindeki değişiklikleri izler ve CI sırasında bozan değişiklikler konusunda uyarır.

# Push schema to Apollo Studio:
npx apollo schema:push --endpoint https://api.example.com/graphql

Schema ile Sahte Veri Oluşturma

Gerçek bir sunucu olmadan istemci geliştirmek için schema kullanarak sahte veriler oluşturun ve sahte verilerin schema ile uyumlu kalmasını sağlayın.

import { buildClientSchema, introspectionFromSchema } from "graphql";
import { addMocksToSchema } from "@graphql-tools/mock";
const schema = buildClientSchema(introspectionResult);
const mockedSchema = addMocksToSchema({ schema });

Alternatif Olarak tRPC

Yalnızca TypeScript kullanılan projelerde tRPC, bir schema dili olmadan uçtan uca tür güvenliği sağlar; sunucu router türü IS istemci sözleşmesidir.

// Server: router infers types
const router = t.router({ getUser: t.procedure.query(() => fetchUser()) });
// Client: types flow automatically via inference
const { data } = trpc.getUser.useQuery();

Doğrulama için Zod + tRPC

Zod schema tanımlarını tRPC girdi doğrulayıcılarıyla birleştirerek çalışma zamanında doğrulama ve tek bir tanımdan derleme zamanında türler elde edin.

const createUser = t.procedure
  .input(z.object({ name: z.string(), email: z.string().email() }))
  .mutation(({ input }) => saveUser(input));
// input: { name: string; email: string } — from Zod schema

CI: Tam Schema Güvenliği İşlem Hattı

Schema öncelikli güvenlik için eksiksiz bir CI işlem hattı: schema için lint denetimi yapın → bozan değişiklikleri denetleyin → kod oluşturmayı çalıştırın → tür denetimi yapın → sınamaları çalıştırın.

# .github/workflows/schema.yml
- run: npx graphql-inspector validate ...
- run: npx graphql-codegen --check
- run: npx tsc --noEmit
- run: npm test

Özet: Schema Öncelikli İş Akışı

Schema öncelikli TypeScript: SDL'yi tanımlayın → sunucu çözücü türlerini oluşturun → istemci işlem türlerini oluşturun → CI içinde bozan değişiklikleri belirleyin. Schema, tüm tür güvenliği katmanları için tek doğru bilgi kaynağıdır.

Hızlı Kontrol

Schema öncelikli bir iş akışında GraphQL schema'nın rolü nedir?

Öğrendikleriniz

Schema öncelikli TypeScript iş akışları tüm türleri GraphQL schema'dan türetir. Sunucu için çözücü türlerini, istemci için işlem türlerini oluşturun; CI içinde bozan değişiklikleri belirleyin ve schema'yı tüm katmanlar arasındaki sözleşme olarak koruyun.

Sıkça Sorulan Sorular

“Uçtan Uca Tür Güvenliği: Önce Şema İş Akışı” dersi ücretsiz mi?

Evet — “Uçtan Uca Tür Güvenliği: Önce Şema İş Akışı” 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.

“Uçtan Uca Tür Güvenliği: Önce Şema İş Akışı” dersinde ne öğreneceğim?

Şemadan istemciye kadar tek bir doğruluk kaynağını koruyun 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 4. dersidir.

“Uçtan Uca Tür Güvenliği: Önce Şema İş Akışı” 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. GraphQL Şemasından TypeScript Türlerine
  2. GraphQL Kod Üreticisiyle Türlendirilmiş Çözücüler
  3. Apollo ve urql ile Türlendirilmiş GraphQL İstemcisi
  4. Uçtan Uca Tür Güvenliği: Önce Şema İş Akışı
← TypeScript Academy Sayfasına Dön