Skip to content

createRoute Kullanımı

Silgi'de createRoute, bir API endpoint'inin yolunu (route) tanımlamak için kullanılır. Route tanımları, şema (createSchema) ve servis (createService) tanımlarınızla birlikte kullanılarak endpoint'lerinizi daha okunabilir ve yönetilebilir hale getirir.

Temel Kullanım

typescript
import { createRoute } from 'silgi'

export const getBookByIdRoute = createRoute({
  route: '/api/library/books/:id',
})

Bu örnekte, /api/library/books/:id yolunu temsil eden bir route nesnesi oluşturulmuştur.

Neden createRoute Kullanılır?

  • Okunabilirlik: Route tanımlarını merkezi ve açık hale getirir.
  • Tekrar Kullanılabilirlik: Aynı route'u şema ve servislerde tekrar tekrar kullanabilirsiniz.
  • Otomasyon: CLI ve araçlar tarafından route'lar kolayca taranabilir.

Route Ekledikten Sonra Ne Yapmalı?

Yeni bir route ekledikten veya mevcut bir route'u değiştirdikten sonra, şemalarınızın ve servislerinizin otomatik olarak güncellenmesi ve bağlanması için Silgi CLI ile birlikte gelen aşağıdaki komutu çalıştırmalısınız:

bash
pnpm silgi prepare
bash
bun silgi prepare
bash
npm run silgi prepare
bash
yarn silgi prepare

Bu komut, route tanımlarınızı tarar ve ilgili şema ile servisleri otomatik olarak bağlar. Böylece tip güvenliği ve otomasyon avantajlarından tam olarak yararlanırsınız.

Route Nesnesi ile Şema ve Servis Bağlantısı

Bir route nesnesi, ilgili şema ve servis ile birlikte kullanılabilir:

typescript
import { createRoute, createSchema, createService } from 'silgi'
import { z } from 'zod'

export const getBookByIdRoute = createRoute({
  route: '/api/library/books/:id',
})

export const getBookByIdSchema = createSchema({
  path: '/api/library/books/:id',
  method: ['GET'],
  setup: {
    pathParams: z.object({ id: z.string() }),
    output: z.object({ id: z.string(), name: z.string() }),
  },
})

export const getBookByIdService = createService({
  path: `GET:/api/library/books/:id`,
  setup: {
    handler: async (input) => {
      // ...handler kodu...
    }
  }
})

Parametreli Route Tanımları

Route tanımlarında parametreler iki nokta (:param) ile belirtilir:

typescript
export const getUserRoute = createRoute({
  route: '/api/users/:userId',
})

Sıkça Sorulanlar

  • Route tanımı zorunlu mu? Evet, Silgi'de route tanımı zorunludur. createSchema, createMiddleware, createService gibi tüm yapılar route üzerinden beslenir ve otomatik tip çıkarımları da route tanımı üzerinden yapılır. Route'u tek bir yerde tanımlayarak, tüm sistemde tutarlı ve güvenli bir şekilde kullanabilirsiniz.

Released under the MIT License. (dev). Documentation design is a copy of vite.dev docs.