Sunucu Backend Oluşturmak

Kendime Notlar

API GEREÇLERIDONANIMKENDIME NOTLAR

Duval

9/6/20253 min read

sunucu backend
sunucu backend

Sunucu (backend) oluşturma konsepti

ilk başta karmaşık görünebilir, ancak temel mantığı kavradığınızda oldukça basittir. Amacımız, API anahtarı gibi gizli bir bilgiyi, herkesin görebileceği ön yüz (frontend - HTML/JS) kodundan alıp, sadece bizim kontrol ettiğimiz güvenli bir arka yüz (backend) sunucusuna taşımaktır.

Temel Konsept: "Aracı Sunucu" (Proxy)

Oluşturacağınız backend, Google'ın API'si ile sizin web sayfanız arasında güvenli bir aracı görevi görecek. İşleyiş şöyle değişecek:

Eski (Güvensiz) Yöntem:

  • Tarayıcınız (HTML/JS) ➔ API Anahtarını kullanarak ➔ Google API

Yeni (Güvenli) Yöntem:

  1. Tarayıcınız (HTML/JS): Sadece "Bana şu metin için haber başlığı oluştur" isteğini sizin kendi sunucunuza gönderir. İçinde API anahtarı yoktur.

  2. Sizin Sunucunuz (Backend): Bu isteği alır. Güvenli bir şekilde sakladığı API anahtarını ekler ve isteği Google API'sine iletir.

  3. Google API: Cevabı sizin sunucunuza gönderir.

  4. Sizin Sunucunuz (Backend): Google'dan gelen cevabı alır ve sonuçları tarayıcınıza geri gönderir.

Bu sayede son kullanıcı (tarayıcı), sizin gizli API anahtarınızı asla görmez.

Nasıl Bir Yol İzlemelisiniz? (Adım Adım Yol Haritası)

JavaScript'e zaten aşina olduğunuz için en mantıklı başlangıç Node.js olacaktır. Node.js, JavaScript'i tarayıcı dışında, bir sunucuda çalıştırmanızı sağlar.

Adım 1: Gerekli Ortamı Kurun

  1. Node.js'i Yükleyin: Bilgisayarınızda Node.js yüklü değilse, resmi web sitesinden LTS (Long Term Support) versiyonunu indirin ve kurun. Bu, npm (Node Paket Yöneticisi) aracını da beraberinde getirecektir.

  2. Proje Klasörü Oluşturun: Projeniz için yeni bir klasör oluşturun (örneğin, haber-backend). Komut satırını (Terminal veya CMD) açıp bu klasörün içine girin ve npm init -y komutunu çalıştırın. Bu komut, projeniz için bir package.json dosyası oluşturur.

Adım 2: Gerekli Paketleri Yükleyin

Komut satırında, proje klasörünüzün içindeyken aşağıdaki paketleri yükleyin:

  • Express.js: Web sunucusu oluşturmayı ve API yolları (endpoint) tanımlamayı çok kolaylaştıran popüler bir kütüphanedir.

  • dotenv: API anahtarı gibi gizli bilgileri kodun dışındaki bir .env dosyasında güvenle saklamanızı sağlar.

  • node-fetch (veya axios): Sunucu tarafından başka bir API'ye (Google'a) istek atmak için kullanılır. (Node.js'in yeni sürümlerinde fetch yerleşik olarak gelse de bu paketle başlamak daha kolay olabilir.)

Yükleme Komutu:

Bash ''npm install express dotenv node-fetch '' örnek misal kod

Adım 3: Sunucu Kodunu Yazın

Proje klasörünüzde server.js (veya index.js) adında bir dosya oluşturun ve içine aşağıdaki gibi bir kod yazın.

JavaScript '' /); '' ( bla bla silinmiş bilgi kod oluştur. )

Adım 4: API Anahtarını Güvenli Bir Şekilde Saklayın

  1. Proje klasörünüzde .env adında yeni bir dosya oluşturun.

  2. İçine gizli anahtarınızı şu formatta yazın:

    GOOGLE_API_KEY=AIzaSy...sizin_gercek_api_anahtarınız...VIWg

  3. Proje klasörünüzde .gitignore adında bir dosya oluşturup içine .env yazın. Bu, .env dosyasının yanlışlıkla Git/GitHub'a yüklenmesini engeller.

Adım 5: Frontend Kodunuzu Güncelleyin

Şimdi hastag-tr.html dosyanızdaki JavaScript fetch isteğini, Google'a değil, kendi backend sunucunuza istek atacak şekilde değiştirin.

JavaScript ''// ESKİ KOD: .... systemPrompt }) }); ''

Adım 6: Sunucuyu Çalıştırma ve Yayınlama (Deployment)

  • Yerel Test: Komut satırında node server.js komutunu çalıştırarak sunucunuzu kendi bilgisayarınızda başlatabilirsiniz. Frontend'iniz artık http://localhost:3000/generate-news adresine istek atacaktır.

  • Yayınlama: Bu backend kodunu internette çalışır hale getirmek için Vercel, Netlify veya Render gibi ücretsiz servisleri kullanabilirsiniz. Bu platformlar, kodunuzu GitHub'dan çekip sizin için otomatik olarak yayınlayabilir ve yönetebilirler. Özellikle Vercel ve Netlify'ın "Serverless Functions" özelliği, tam olarak bu tür tekil işlemler için harikadır.

Bu yol haritası, sizi güvenli ve profesyonel bir yapıya taşıyacaktır.