Ön Koşul: Lütfen devam etmeden önce Node.js’in güncel bir sürümünün (v18 veya üstü) yüklü olduğundan emin olun.
Crafter projenizi yerel makinenizde çalıştırmak ve geliştirmek için bu adımları izleyin. Adım 1: Proje klasörünüze gidin (.env.local dosyasının bulunduğu yer) ve aşağıdaki komutu çalıştırın:
npm run dev
Yerel geliştirme sunucusu başlatıldığında, web sitenizin bir önizlemesi http://localhost:3000 adresinde erişilebilir olacaktır.

Özel Port Kullanımı

Varsayılan olarak, Next.js 3000 portunu kullanır. Farklı bir port kullanmak için --port bayrağını ekleyebilirsiniz. Örneğin, projeyi 3333 portunda çalıştırmak için şu komutu kullanın:
npm run dev -- --port 3333
Eğer belirlediğiniz port kullanımda ise, sistem otomatik olarak bir sonraki uygun portu deneyecektir.

API Entegrasyonu ve Geliştirme

Crafter, sunucu verilerinizi yönetmek ve özel entegrasyonlar oluşturmak için güçlü bir API sunar. Tüm API endpoint’lerini ve modellerini Swagger arayüzü üzerinden inceleyebilirsiniz.

Swagger API Dokümantasyonu

Tüm API endpoint’lerini, gerekli parametreleri ve yanıt modellerini görmek için Swagger arayüzünü ziyaret edin.

Önemli: Origin Header Zorunluluğu

Güvenlik nedeniyle, Crafter API’sine gönderilen tüm isteklerde Origin başlığının (header) bulunması zorunludur. Bu başlığın değeri, isteği yapan web sitesinin adresi olmalıdır. Aksi takdirde, isteğiniz API tarafından reddedilecektir.
API’ye istek gönderirken Origin başlığına, Crafter Yönetim Paneli’nde kayıtlı olan website_url değerinizi eklemeyi unutmayın.

Örnek 1: Site Bilgilerini Çekme

Aşağıda GET metodu ile site yapılandırma bilgilerini çeken örnek bir API isteği görebilirsiniz:
// Örnek: Site yapılandırma bilgilerini çekme isteği
const websiteId = process.env.NEXT_PUBLIC_WEBSITE_ID;
const websiteUrl = '[https://sitenizinadresi.com](https://sitenizinadresi.com)'; // Kendi site adresiniz

fetch(`https://api.crafter.net.tr/website/get`, {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Origin': websiteUrl 
  },
  body: JSON.stringify({
    id: websiteId
  })
})
.then(response => response.json())
.then(data => {
  console.log('Site Bilgileri:', data);
})
.catch(error => {
  console.error('API Hatası:', error);
});

Örnek 2: Lisans Anahtarı Doğrulama

Aşağıda POST metodu ile lisans anahtarının geçerliliğini kontrol eden örnek bir API isteği görebilirsiniz. Bu endpoint, swagger üzerinden de görüldüğü gibi, gönderilen anahtarın doğruluğunu teyit eder.
// Örnek: Lisans anahtarını doğrulama isteği
const licenceKey = process.env.NEXT_PUBLIC_LICENCE_KEY;
const websiteUrl = 'https://sitenizinadresi.com'; // Kendi site adresiniz

fetch('https://api.crafter.net.tr/v1/website/key/verify', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Origin': websiteUrl
  },
  body: JSON.stringify({
    key: licenceKey
  })
})
.then(response => response.json())
.then(data => {
  if (data.success) {
    console.log('Lisans anahtarı başarıyla doğrulandı.');
  } else {
    console.log('Lisans doğrulama hatası:', data.message);
  }
})
.catch(error => {
  console.error('API Hatası:', error);
});

Sorun Giderme