All Systems Operational
Powered By
profound-logo
profound-logoProfound CMS
⌘K
Admin

Hızlı başlangıç

Şemalar hakkında bir gönderi

Continue Reading
NextJson Ve Claude Kod›

Tür Güvenli Zod Şemaları Oluşturun

Bu özellik, şema açıklamanızı tür güvenli bir Zod şeması biçiminde almanızı sağlar ve şunları sunar:

  • TypeScript öncelikli şema doğrulaması
  • Statik tür çıkarımı

Daha fazla bilgi edinin: https://zod.dev

Kurulum

Zod şemanızı almak için şunları yapacaksınız:

  1. Gerekli bağımlılıkları yükleyin
  2. cms-renderer yardımcı programlarını kullanarak bir betik oluşturun

Proje Yapısı

apps/
  web/
    app/
      page.tsx
    scripts/
      generated-schema.ts   # betik dosyası

Betik: generated-schema.ts

import { fetchAllCustomSchemaFields, saveZodSchemaCode } from 'cms-renderer/lib/custom-schemas';
import { cmsConfig } from '../lib/cms-config';

async function main() {
  const { cmsUrl, websiteId } = cmsConfig;

  if (!cmsUrl) {
    throw new Error(
      '[generate-schemas] NEXT_PUBLIC_CMS_API_URL ayarlanmadı. Ortamınızda veya .env dosyanızda ayarlayın.'
    );
  }

  if (!websiteId) {
    throw new Error(
      '[generate-schemas] CMS_WEBSITE_ID ayarlanmadı. Ortamınızda veya .env dosyanızda ayarlayın.'
    );
  }

  await saveZodSchemaCode(
    await fetchAllCustomSchemaFields(cmsConfig),
    './generated/cms-schemas.ts'
  );

  console.log('[generate-schemas] Tamamlandı.');
}

main().catch((err) => {
  console.error('[generate-schemas] Başarısız oldu:', err);
  process.exit(1);
});

CMS Yapılandırma Örneği

export const cmsConfig = {
  cmsUrl: process.env.NEXT_PUBLIC_CMS_API_URL,
  apiKey: process.env.CMS_API_KEY,
  websiteId: '...',
};

package.json Yapılandırması

Not: Bir tsconfig.json dosyanız yoksa, --tsconfig bayrağını kaldırın.

{
  "name": "web",
  "version": "0.1.0",
  "type": "module",
  "private": true,
  "scripts": {
    "generate-schemas": "tsx --tsconfig tsconfig.json scripts/generate-schemas.ts",
    "...": "..."
  },
  "dependencies": {

Betiği Çalıştırma

bun run generate-schemas

Örnek çıktı:

tsx --tsconfig tsconfig.json scripts/generate-schemas.ts
[generate-schemas] Tamamlandı.

Güncellenmiş Proje Yapısı

apps/
  web/
    app/
      page.tsx
    scripts/
      generated-schema.ts
    generated/
      cms-schemas.ts   # oluşturulan Zod şeması

page.tsx Dosyasında Kullanım

import type { PetFoodPost, SiteConfig } from '@/generated/cms-schemas';
import { petFoodPostSchema } from '@/generated/cms-schemas';

// Tür güvenli ayrıştırma için kullanın
petFoodPostSchema.parse(obj);

Notlar

  • Oluşturulan dosyayı inceleyerek şema yapınızı anlayın
  • Şemanız değiştiğinde betiği tekrar çalıştırın:
bun run generate-schemas
  • Bunu geliştirme veya derleme iş akışınıza entegre edebilirsiniz
  • Şemaları yönetim paneli üzerinden güncelleyin ve ardından yerelde yeniden oluşturun
"cms-renderer"
:
"0.3.1"
,
"zod": "^4.3.6",
"...": "..."
},
"devDependencies": {
"tsx": "^4.21.0",
"object-hash": "^3.0.0",
"...": "..."
}
}

Hibrit

Renderer ProjesiParametrik YönlendirmeBileşenler TürleriSseYönetici paneli proxy kurulumuDuzenleme Modu Destegiyle Statik IslemeŞablon Oluşturucuda Betik YazmaCreate Profound Next

Başsız

Hızlı başlangıçJson Ve Claude KodBileşen Zod Çekme

Mcp

Mcp

Cms Özellikleri

Özellik Belgeler ŞablonuÖzellik Şablon OluşturucuÖzellik ÇeviriciÖzellik Organizasyon

Motivasyon

Bizim yaklaşımımız

Terminoloji

Hibrit Vs Headless