Tüm Rehber Sayfaları
API Temelleri
Altın Fiyatları JSON API: Yanıt Şeması ve Örnek Kullanım

Altın Fiyatları JSON API Yanıt Şeması ve Örnek Kullanım

JSON, altın fiyat verisini taşımak için en yaygın formattır. Bu yazıda Hasfiyat API'nin döndürdüğü JSON şemasını alan alan açıklıyor, üç farklı dilde ayrıştırma örneği veriyoruz.

JSON yanıtında hangi alanlar var?

Yanıtın kökünde sembol listesi bulunur. Her kalem için `title` (sembol adı), `buying` (alış), `selling` (satış), `change` (değişim yüzdesi) ve `updated` (zaman damgası) alanları döner.

Alış ve satış ayrı gelir çünkü kuyumculuk pratiğinde ikisi farklı kullanılır: müşteriden alırken alış, satarken satış fiyatı esas alınır. Tek bir 'fiyat' alanı bu ayrımı kaybettirir.

Zaman damgası ISO 8601 biçimindedir. Verinin tazeliğini ölçmek için bu alanı mutlaka kullanın; sunucu saatinizle karşılaştırıp yaşı hesaplayın.

Sembol adları ve takma adlar

Sembol adlandırması kaynaktan kaynağa değişebilir. Bir kaynak 'GRAM ALTIN' derken diğeri 'GRAMALTIN' veya 'HAS ALTIN' diyebilir. API tarafında takma ad çözümlemesi yapılır, böylece hangi yazımı gönderirseniz gönderin doğru kalemi alırsınız.

Kodunuzda sembolü sabit string olarak gömmek yerine bir eşleme tablosu tutun. Kaynak değiştirdiğinizde tek yerden güncellersiniz.

Ziynet kalemlerinde (çeyrek, yarım, tam) eski ve yeni ayrımı olabilir. Hangi kalemi kullandığınızı ürün kartınızda net tutun.

PHP ile altın fiyatı çekme

PHP tarafında `curl` veya `file_get_contents` yeterlidir. Zaman aşımı süresini mutlaka belirleyin; varsayılan davranış isteğinizi dakikalarca bekletebilir.

Yanıtı `json_decode` ile diziye çevirdikten sonra beklediğiniz alanların varlığını kontrol edin. Kaynak tarafında bir değişiklik olursa kodunuz uyarı üretmeli, sessizce sıfır fiyat yazmamalı.

Laravel kullanıyorsanız `Http::timeout(10)->get(...)` kalıbı hem okunaklı hem güvenlidir; yanıtı `Cache::remember` ile 5-10 saniye saklayın.

Python ve JavaScript örnekleri

Python'da `requests` kütüphanesi en pratik yoldur. `timeout` parametresini vermeyi unutmayın ve `raise_for_status()` ile HTTP hatalarını yakalayın.

Node.js tarafında `fetch` veya `axios` kullanılabilir. Sunucu tarafında çalıştığınızdan emin olun; tarayıcıda anahtar açığa çıkar.

Her iki dilde de yanıtı doğrudan ekrana basmayın; önce şema doğrulaması yapın. Eksik alan gelirse son geçerli kopyayı kullanmak daha güvenlidir.

Sık yapılan ayrıştırma hataları

Ondalık ayırıcı karışıklığı en yaygın hatadır. JSON'da sayılar nokta ile gelir; Türkçe biçimlendirmeyi yalnızca ekrana basarken uygulayın, hesaplamada asla.

Sayıyı string olarak saklamak da sık görülen bir hatadır. Karşılaştırma ve toplama işlemleri beklenmedik sonuç verir. Veriyi aldığınız anda sayıya çevirin.

Zaman damgasını yerel saate çevirirken zaman dilimini atlamayın. Sunucunuz UTC çalışıyorsa ve siz +03:00 bekliyorsanız üç saatlik hayali bir gecikme görürsünüz.

Üretimde JSON API kullanırken

Yanıt boyutu küçüktür ama istek sayısı yüksek olabilir. Tek sembol gerekiyorsa tüm listeyi çekmek yerine sembol bazlı ucu kullanın.

Gzip sıkıştırmasını açık tutun; bant genişliğinden tasarruf sağlar.

Uçların tam referansı ve güncel örnekler için [dokümantasyon](/docs) sayfasına bakabilirsiniz.

Sık sorulan sorular

JSON yanıtındaki 'updated' alanı hangi biçimde geliyor?

ISO 8601 biçiminde, zaman dilimi bilgisiyle birlikte gelir. Sunucu saatinizle karşılaştırarak verinin kaç saniye önce güncellendiğini hesaplayabilirsiniz.

Alış ve satış fiyatı neden ayrı?

Kuyumculukta müşteriden alım ve müşteriye satış farklı fiyatlarla yapılır. Tek bir fiyat alanı bu ayrımı kaybettirir ve yanlış hesaplamaya yol açar.

Sembol adını yanlış yazarsam ne olur?

API takma ad çözümlemesi yapar; yaygın yazım farklılıkları otomatik eşlenir. Tanınmayan bir sembol gönderirseniz açıklayıcı bir hata mesajı döner.

Yanıtı doğrudan veritabanına yazabilir miyim?

Yazabilirsiniz ancak şema doğrulaması yapmadan yazmayın. Kaynakta bir değişiklik olduğunda eksik veya hatalı kayıt oluşmasını engellersiniz.

Fiyatları ne kadar önbellekte tutmalıyım?

Vitrin ekranı gibi kritik yerlerde 3-5 saniye, ürün fiyatı güncelleme gibi işlerde 30-60 saniye çoğu senaryo için yeterlidir. Kotanızı ciddi biçimde korur.

Canlı altın & döviz verisine hemen bağlanın

Dakikalar içinde REST veya Socket.IO ile gerçek zamanlı fiyat akışına başlayın.