Kripto para analitiği panelleri, likidite takipçileri ya da finansman oranı arbitrajı izlemek, sıklıkla yüksek kaliteli piyasa istihbaratı verilerine mevcut olmayı gerektirir. Coinglass platformu, türevler, ETF’ler ve zincir üzerinde analizler için en kapsamlı API’lerden birini sunmaktadır. Ancak, REST API’lerini ve WebSocket akışlarını sıfırdan entegre etmek, geliştiriciler için gerçek bir baş ağrısına dönüşebilir: sonsuz boilerplate kod yazmak, HTTP istemcilerini yönetmek, hataları ele almak ve oran kısıtlamaları ile başa çıkmak.
Şans eseri, PHP geliştiricileri için sağlam bir çözüm ortaya çıkmıştır. Bu makalede, Laravel ile birinci sınıf entegrasyonu olan coinglass-php paketine derinlemesine bir bakış atacağız.
coinglass-php nedir?
coinglass-php nedir?coinglass-php paketi (Igor Sazonov tarafından geliştirilmiştir), Coinglass API v4’ün altı uç nokta grubunun tamamı için kapsamlı bir sarmalayıcı olarak hizmet vermektedir: Futures, Spot, Options, ETF, On-Chain ve Indicators. Ayrıca, gerçek zamanlı veri akışlarını yerel olarak işlemek için yerleşik bir WebSocket istemcisi kimliğine de sahiptir.
Paket, geliştiricinin likidite panosunu oluştururken Guzzle çağrılarını el ile döndürme ve ham dizilerle başa çıkma konusundaki hayal kırıklığından doğmuştur. Sonuç olarak, PHP 8.1+ projesine kolaylıkla entegre olabilen, PSR-18 uyumlu, sıkı bir şekilde tiplenmiş bir istemci ortaya çıkmıştır.
Paketin Ana Özellikleri
Paketin Ana Özellikleri
1. Tam API Kapsamı
1. Tam API Kapsamı
Paket, Coinglass v4 tarafından sunulan tüm uç noktaları destekler. Eksik yöntemleri manuel olarak uygulamak zorunda kalmazsınız. Kutudan çıktığı gibi, açık pozisyon tarihi, likidite verileri, emir defterleri, Bitcoin ETF akışları, Korku & Açgözlülük endeksi ve daha fazlasını alabilirsiniz.
2. Yerleşik WebSocket İstemcisi (Ek Bağımlılıklara İhtiyaç Yok)
2. Yerleşik WebSocket İstemcisi (Ek Bağımlılıklara İhtiyaç Yok)
Coinglass WebSocket API’si ile çalışmak için Ratchet veya ReactPHP gibi ağır üçüncü taraf kütüphaneler yüklemenize gerek yok. İstemci, standart PHP akışları (stream_socket_client) ve ext-openssl uzantısı üzerine yerel olarak inşa edilmiştir. Kanallara abone olma ve bağlantıyı sürdürme işlemleri—her 20 saniyede bir gereken “ping” kalp atışını gönderme dahil—tamamen otomatik olarak halledilir.
3. Çerçeve Bağımsız ve PSR-18 Değiştirilebilir
3. Çerçeve Bağımsız ve PSR-18 Değiştirilebilir
Paket mükemmel Laravel desteğine sahipken, tamamen bağımsızdır. Varsayılan olarak Guzzle (^7.4) kullanır, ancak PSR-18 standardı sayesinde tercih ettiğiniz herhangi bir HTTP istemcisi ile değiştirilebilir.
4. Otomatik Yeniden Deneme Mekanizması
4. Otomatik Yeniden Deneme Mekanizması
Coinglass API’si kesin oran kısıtlamalarını (HTTP 429 Too Many Requests) zorunlu kılar. coinglass-php bunu zarif bir şekilde yönetir: oran kısıtlamalı istekleri otomatik olarak yeniden dener ve sunucu bir Retry-After başlığı sağladığında buna saygı gösterir.
5. Sıkı Tip Hidratasyonu (DTO’lar)
5. Sıkı Tip Hidratasyonu (DTO’lar)
Belirsiz ilişkisel dizilere veda edin. Her API yanıtı, bir CoinGlassDto nesnesine (tek bir kayıt için) veya bir CoinGlassCollection‘a (listeler için) taşınır. Alanlara istediğiniz en doğal sözdizimini kullanarak erişebilirsiniz: özellik sözdizimi ($dto->openInterestUsd), dizi sözdizimi ($dto['openInterestUsd']) veya alıcı yöntemleri ($dto->get('openInterestUsd')). Eğer ham yüklemede bozulmamış veriye ihtiyacınız olursa, bu her zaman $dto->raw veya $dto->toArray() ile mevcuttur.
6. Açık Hata Hiyerarşisi
6. Açık Hata Hiyerarşisi
Tüm hataları tek bir catch-all Exception atmak yerine, paket açık ve anlamlı bir hata hiyerarisi sağlar: UnauthorizedException, NotFoundException, RateLimitException ve diğer tüm API ile ilgili hatalar için genel bir ApiException. Bu, hataya dayanıklı kod yazmayı çok daha basit hale getirir.
Laravel Entegrasyonu: Kutudan Çıktığı Gibi Hazır
Laravel Entegrasyonu: Kutudan Çıktığı Gibi Hazır
Laravel (10, 11, 12 ve 13 sürümleri) kullanıcıları için paket, maksimum rahatlık sunar. composer require tigusigalpa/coinglass-php aracılığıyla kurduktan sonra, yapılandırma dosyasını yayınlayabilirsiniz:
php artisan vendor:publish --tag=coinglass-config
Ayrıca yapılandırma, .env dosyanız aracılığıyla kolaylıkla yönetilebilir:
COINGLASS_API_KEY=your-api-key
COINGLASS_BASE_URL=https://open-api-v4.coinglass.com
COINGLASS_TIMEOUT=15
COINGLASS_RETRY_ATTEMPTS=3
COINGLASS_RETRY_DELAY=1
Kontrolcülerinizde CoinGlassClient almak için Bağımlılık Enjeksiyonu kullanabilir veya zarif CoinGlass facade’ını kullanabilirsiniz:
use Tigusigalpa\CoinGlass\Laravel\Facades\CoinGlass;
// BTC açık pozisyon tarihlerini almak için son 30 gün
$oi = CoinGlass::futures()->openInterestOhlcHistory('BTC', '1d', 30);
Pratik Kullanım Örnekleri
Pratik Kullanım Örnekleri
İstemcinin API’si, mantıksal olarak uç nokta gruplarına bölünmüştür. İşte ihtiyacınız olan verileri almanın ne kadar kolay olduğunu gösteren birkaç örnek:
Futures ile Çalışma:
$client = CoinGlassClient::make('YOUR_API_KEY');
// Finansman oranı borsa listesi
$funding = $client->futures()->fundingRateExchangeList();
// Likidite geçmişi
$liq = $client->futures()->liquidationHistory(, , );
ETF Verilerini Alma:
// Bitcoin ETF akışları son 24 haftalık dönem için
$flows = $client->etf()->bitcoinFlowHistory(, );
Gerçek zamanlı WebSocket Akışı:
use Tigusigalpa\CoinGlass\WebSocket\Channels;
use Tigusigalpa\CoinGlass\WebSocket\Message;
$stream = $client->websocket()->connect();
$stream->subscribe(
Channels::liquidationOrders(),
Channels::futuresTicker(, ),
);
$stream->listen(function (Message {
if ($message->channel === Channels::liquidationOrders()) {
foreach ($message->collection() as $order) {
echo "{$order->exchange} {$order->symbol} likide oldu \${$order->volume_usd}\n";
}
}
});
listen() metodu, sonsuza dek yürütmeyi engelleyerek, uzun süren CLI işçileri veya kuyruklu Laravel işleri için mükemmel bir uyum sağlar.
Sonuç
Sonuç
coinglass-php paketi, modern bir PHP API istemcisinin neye benzediğine dair önemli bir örnektir. HTTP istekleri, oran kısıtlamaları ve WebSocket bağlantılarıyla ilgili tüm can sıkıcı boilerplate’leri soyutlayarak, geliştiricilere temiz, tiplenmiş ve öngörülebilir bir arayüz sunmaktadır.
İster saf PHP ile karmaşık bir algoritmik ticaret sistemi inşa ediyor olun, ister Laravel 11’de bir kripto analitiği portalı geliştiriyor olun, bu paket size saatlerce—hatta günlerce—geliştirme süresinden tasarruf ettirecektir.
Kod kalitesi, PHP 8.1+ ‘in modern özelliklerini kullanan sağlam bir test kapsamı (PHPUnit ve Orchestra Testbench kullanılarak) ile desteklenmektedir. Eğer projeniz kripto piyasa istihbaratını içeriyorsa, coinglass-php kesinlikle composer.json dosyanızda bir yer edinmelidir.
Kaynaklar
Kaynaklar
Kaynak: Orijinal Makale
- coinglass-php nedir?
- Paketin Ana Özellikleri
- 1. Tam API Kapsamı
- 2. Yerleşik WebSocket İstemcisi (Ek Bağımlılıklara İhtiyaç Yok)
- 3. Çerçeve Bağımsız ve PSR-18 Değiştirilebilir
- 4. Otomatik Yeniden Deneme Mekanizması
- 5. Sıkı Tip Hidratasyonu (DTO’lar)
- 6. Açık Hata Hiyerarşisi
- Laravel Entegrasyonu: Kutudan Çıktığı Gibi Hazır
- Pratik Kullanım Örnekleri
- Sonuç


