first commit
This commit is contained in:
109
CONTACT_API_README.md
Normal file
109
CONTACT_API_README.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# 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:
|
||||
|
||||
```env
|
||||
# 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:
|
||||
|
||||
```typescript
|
||||
{
|
||||
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:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": { /* backend response */ },
|
||||
"message": "Mesajınız başarıyla gönderildi"
|
||||
}
|
||||
```
|
||||
|
||||
### Hata Response:
|
||||
```json
|
||||
{
|
||||
"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:
|
||||
```bash
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user