Files
atahan/CONTACT_API_README.md
Beyhan Oğur 763b147cc3 first commit
2026-04-26 22:04:35 +03:00

2.6 KiB
Raw Permalink Blame History

Contact Form API Kullanım Kılavuzu

Yapılandırma

1. Environment Variables (.env dosyası)

.env dosyanıza aşağıdaki satırları ekleyin ve kendi bilgilerinizle güncelleyin:

# Backend Credentials for Contact Form
BACKEND_EMAIL='your-admin-email@example.com'
BACKEND_PASSWORD='your-admin-password'

2. Backend API Endpoint'leri

Contact form sistemi aşağıdaki backend endpoint'lerini kullanır:

  • Login: http://127.0.0.1:8000/api/v1/auth/jwt/create/
  • Contact Create: http://127.0.0.1:8000/api/v1/contact/create/

Nasıl Çalışır?

Server-Side Flow (Nuxt Server API)

  1. Kullanıcı formu doldurur ve gönderir
  2. Frontend /api/contact/post.create endpoint'ine POST request gönderir
  3. Nuxt server API:
    • .env dosyasından admin credentials'ları alır
    • Backend'e login olur ve JWT token alır
    • Token ile contact form verisini backend'e gönderir
  4. Backend'den gelen response frontend'e iletilir

Güvenlik

  • Admin credentials sadece server-side'da saklanır (.env dosyası)
  • Client-side'da hiçbir zaman admin şifresi görünmez
  • Her form gönderiminde otomatik login yapılır
  • JWT token sadece server-side'da kullanılır

Form Alanları

Contact form aşağıdaki zorunlu alanları içerir:

{
  name: string,      // İsim
  email: string,     // E-posta
  ip: string,        // IP Adresi (server-side otomatik eklenir)
  subject: string,   // Konu
  message: string    // Mesaj
}

Not: IP adresi kullanıcıdan alınmaz, server-side'da otomatik olarak tespit edilir ve backend'e gönderilir.

Frontend Kullanımı

Form zaten app/pages/index.vue sayfasında entegre edilmiştir. Kullanıcı:

  1. Formu doldurur
  2. Turnstile captcha'yı tamamlar
  3. "Send Message" butonuna tıklar
  4. Başarılı/hatalı mesaj görür

API Response

Başarılı Response:

{
  "success": true,
  "data": { /* backend response */ },
  "message": "Mesajınız başarıyla gönderildi"
}

Hata Response:

{
  "statusCode": 400,
  "statusMessage": "Tüm alanlar zorunludur: name, email, subject, message"
}

Test Etme

  1. Sunucuyu başlatın: npm run dev
  2. Anasayfaya gidin: http://localhost:3000
  3. Contact bölümüne scroll edin
  4. Formu doldurun ve gönderin

Hata Ayıklama

Konsol loglarını kontrol edin:

# Server-side logs
Terminal'de Nuxt server logları

# Client-side logs
Browser Console

Önemli Notlar

  • ⚠️ .env dosyasını asla Git'e commit etmeyin
  • Production'da gerçek admin credentials kullanın
  • Backend'inizde contact endpoint'inin aktif olduğundan emin olun
  • Turnstile Cloudflare doğrulaması aktif