GenelPara API'de günlük 1.000 istek limiti var. Web sitenizde her sayfa yüklemesinde API'ye istek atarsanız:
❌ Cache Olmadan:
1000 sayfa görüntüleme = 1000 API isteği → Limit aşıldı!
✅ Cache İle:
Cron job (15dk'da bir) = 96 API isteği/gün → Limit güvenli!
1000 sayfa görüntüleme = Cache'den okur (0 API isteği)
| Özellik | Cache YOK | Cache VAR |
|---|---|---|
| Günlük İstek | 1000+ | 96 |
| Sayfa Hızı | 0.5-2 saniye | <0.01 saniye |
| Sunucu Yükü | Yüksek | Düşük |
| Ban Riski | Yüksek | Yok |
- ✅ 15 dakikalık cache - API 15dk'da bir güncellenir
- ✅ Otomatik güncelleme - Cron job ile
- ✅ Web arayüzü - Görsel takip
- ✅ Manuel güncelleme - Tek tıkla
- ✅ Responsive tasarım - Mobil uyumlu
- ✅ Profesyonel görünüm - Temiz ve sade
- ✅ Hata yönetimi - Güvenli işlem
- ✅ Kolay kurulum - 5 dakikada hazır
git clone https://github.com/berkocan/genelpara-api-cache.git
cd genelpara-api-cache# FTP veya SSH ile yükleyin
/var/www/html/
├── cache-updater.php
└── index.phpphp cache-updater.phpÇıktı:
════════════════════════════════════════════════
GenelPara API - Cache Updater
════════════════════════════════════════════════
Mevcut cache yok
API'den veri çekiliyor...
✓ doviz - OK
✓ kripto - OK
✓ altin - OK
✓ Cache başarıyla güncellendi!
Dosya: /var/www/html/genelpara-cache.json
Boyut: 12.45 KB
Sonraki güncelleme: 15 dakika sonra
crontab -eAşağıdaki satırı ekleyin:
*/15 * * * * php /var/www/html/cache-updater.php >> /var/log/genelpara-cache.log 2>&1http://yoursite.com/index.php
Tarayıcıdan index.php'yi açın:
- Cache durumu - Güncel mi, ne zaman güncellenmiş
- Veri tabloları - Döviz, kripto, altın
- Manuel güncelleme - "Güncelle" butonu
- Otomatik yenileme - Sayfa yenile butonu
# Cache güncelle
php cache-updater.php
# Log ile güncelle
php cache-updater.php >> /var/log/cache.log 2>&1<?php
// Cache'den veri oku
$cacheFile = __DIR__ . '/genelpara-cache.json';
$cacheData = json_decode(file_get_contents($cacheFile), true);
// Döviz kurları
$doviz = $cacheData['data']['doviz']['data'];
echo "USD: " . $doviz['USD']['satis'];
// Kripto paralar
$kripto = $cacheData['data']['kripto']['data'];
echo "BTC: " . $kripto['BTC']['satis'];
?>cache-updater.php dosyasında:
define('CACHE_DURATION', 15 * 60); // 15 dakika (saniye)Önerilen değerler:
15 * 60- 15 dakika (önerilen)30 * 60- 30 dakika60 * 60- 1 saat
cache-updater.php dosyasında:
$categories = [
['list' => 'doviz', 'sembol' => 'USD,EUR,GBP,JPY,CHF'],
['list' => 'kripto', 'sembol' => 'BTC,ETH,XRP,DOGE,LTC'],
['list' => 'altin', 'sembol' => 'GA,C,Y,T']
];Kullanılabilir kategoriler:
doviz- Döviz kurlarıkripto- Kripto paralaraltin- Altın fiyatlarıemtia- Emtia fiyatlarıhisse- Hisse senetleriendeks- Endeksler
Sembol örnekleri:
- Döviz:
USD,EUR,GBP,JPY,CHF,CAD,AUD - Kripto:
BTC,ETH,XRP,DOGE,LTC,ADA - Altın:
GA,C,Y,T(Gram, Çeyrek, Yarım, Tam)
define('CACHE_FILE', __DIR__ . '/genelpara-cache.json');Farklı bir yere kaydetmek için:
define('CACHE_FILE', '/var/cache/genelpara/genelpara-cache.json');Sorun: php cache-updater.php çalıştırılıyor ama dosya oluşmuyor.
Çözüm:
# Dizin yazma izni kontrol et
ls -la /var/www/html/
# İzin ver
chmod 755 /var/www/html/
chmod 666 /var/www/html/genelpara-cache.jsonSorun: Cron job eklendi ama cache güncellenmiyor.
Çözüm:
# Cron servis durumu
sudo systemctl status cron
# Cron log kontrol
grep CRON /var/log/syslog
# Tam path kullan
*/15 * * * * /usr/bin/php /var/www/html/cache-updater.phpSorun: Cache güncelleniyor ama veri yok.
Çözüm:
# curl test et
curl "https://api.genelpara.com/json/?list=doviz&sembol=USD"
# PHP'de curl etkin mi?
php -m | grep curl
# curl etkinleştir (Ubuntu)
sudo apt-get install php-curl
sudo service apache2 restartSorun: Web arayüzünde "Süresi Dolmuş" uyarısı.
Çözüm:
# Cron çalışıyor mu?
crontab -l
# Log kontrol
tail -f /var/log/genelpara-cache.log
# Manuel güncelle
php cache-updater.php# Cron job'a log ekle
*/15 * * * * php /var/www/html/cache-updater.php >> /var/log/genelpara-cache.log 2>&1# Son 50 satır
tail -n 50 /var/log/genelpara-cache.log
# Canlı takip
tail -f /var/log/genelpara-cache.log
# Hataları bul
grep "Error" /var/log/genelpara-cache.log#!/bin/bash
# check-cache.sh
CACHE_FILE="/var/www/html/api-cache.json"
MAX_AGE=1200 # 20 dakika
if [ ! -f "$CACHE_FILE" ]; then
echo "HATA: Cache dosyası yok!"
exit 1
fi
AGE=$(( $(date +%s) - $(stat -c %Y "$CACHE_FILE") ))
if [ $AGE -gt $MAX_AGE ]; then
echo "UYARI: Cache çok eski! ($AGE saniye)"
exit 1
else
echo "OK: Cache güncel ($AGE saniye)"
exit 0
fiCron job:
*/5 * * * * /var/www/html/check-cache.sh >> /var/log/cache-monitor.log 2>&1- PHP 7.4 veya üzeri
- cURL extension
- JSON extension
- Cron job erişimi
- Yazma izinleri
Katkılarınızı bekliyoruz! Lütfen şu adımları izleyin:
- Bu repository'yi fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'feat: Add amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request açın
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Berk Öcan
- GitHub: @berkocan
- Website: genelpara.com
- API: api.genelpara.com
- GenelPara API'yi sağladığı için GenelPara ekibine
- Katkıda bulunan tüm geliştiricilere
⭐ Bu projeyi faydalı bulduysanız yıldızlamayı unutmayın!
Made with ❤️ by Berko Can