API nasıl çalışır
API Ucu
Tüm API isteklerin, aşağıdaki API uç noktasına yapılmalı:
https://api.cryptohopper.com/v1/
Desteklenen İstek Yöntemleri
GET Kaynak veya kaynaklar kümesini (örneğin tüm ticaret botların listesini, mevcut emirlerini veya son işlemlerin listesini) almak için GET kullan. Bu yöntem güvenli ve idempotent.
POST POST ile kaynağı oluştur. Örneğin: yeni bir al/sat emri yerleştir, yeni bir trading botu oluştur.
PATCH Düzeltme (PATCH) ile bir kaynağı güncelle. Örneğin: ticaret botunu başlat veya durdur, ya da kişisel detaylarını güncelle. Bu yöntemle, istek bedeninde sadece değiştirmek istediğin alanları belirtmen yeterli.
DELETE Kaynağı silmek için SİL düğmesini kullan.
İstek Parametreleri
Dört çeşit API parametresi kullanıyoruz: yol, sorgu dizesi, başlık ve istek gövdesi parametreleri. İstek gövdesi parametreleri, POST ve PATCH istekleri için JSON istek gövdesinde gönderilen verilerdir. Başlık parametreleri, başlık bölümünde gönderilmesi gereken parametreler. Başlık, Yol ve Sorgu dizesi parametreleri hakkında daha fazla bilgi aşağıdadır.
Başlık Parametreleri
API isteğimiz için her başvuru, başlıkta şu değerleri göndererek yetkilendirilmelidir:
- access-token - Oturum açma kimliğiyle alınan erişim jetonun je elinde.
Yol Parametreleri
Bunlar, uç nokta URI'sinde sağlanan parametrelerdir. Örneğin, GET Hopper uç noktası:
https://api.cryptohopper.com/v1/hopper/{hopper_id}
Ticaret botunu benzersiz ID'siyle almak için, {hopper_id} yer tutucuya ID değerini değiştirmen gerekiyor. Örneğin, ID'si 37 olan bir ticaret botunu almak için şu URL'yi istemelisin:
https://api.cryptohopper.com/v1/hopper/37
Bazı uç noktalar birden çok parametre gerektirir. Örneğin, önceki Hopper'dan belirli bir siparişi getirmek istersen, şu URL'yi çağırman gerekli:
https://api.cryptohopper.com/v1//hopper/{hopperId}/order/{orderId}
Ve parametreleri Hopper ve Sipariş kimliğiyle değiştirerek şunu elde edersin:
https://api.cryptohopper.com/v1//hopper/37/order/231
Herhangi bir API uç noktasında gerekli parametrelerin detaylı listesini görmek için lütfen API referans kılavuzumuza göz at.
Sorgu Parametreleri
Bu tür parametreleri, verileri filtrelemek ve/veya sayfalamak için GET isteklerinde kullanıyoruz. Bu parametreler yolda belirtilmez, ancak URL dizesinde ‘&' karakteriyle ayrılmış bir değer kümesi olarak belirtilir.
Örneğin, bir trading bot'un Bitcoin alım emirlerini almak için Hopper Sipariş endpoint'ine şöyle çağrı yapabilirsin:
https://api.cryptohopper.com/v1/hopper/37/order/?order_type=buy&coin=btc
API referansımızı inceleyerek, bu durumda order_type parametresinin 'satın al' veya 'sat' değerlerini alabilir ve coin parametresinin herhangi bir küçük harfli kripto para birimi kodu olabileceğini görebilirsin.
Yanıt Biçimi
Tüm yanıtlar JSON nesnesi biçimindedir. Dolayısıyla, tüm yanıtlarımızda bulabileceğiniz MIME türü application/json'dir. Her istek ve yanıtın gövdesindeki özel JSON yanıt biçimini, API başvurusu belgelememize bakarak görebilirsin.
HTTP Yanıt Kodları
RFC 2616 ve RFC 6585 standartlarında tanımlanan yanıt durum kodlarını kullanıyoruz..
200 - Tamam Başarılı istek. Müşteri, isteğin sonucunu yanıtın gövdesinde ve başlıklarında alır.
201 – Oluşturuldu İstek kabul edildi ve yeni bir kaynak oluşturuldu.
202 – Kabul Edildi İstek işleme için kabul edildi, ancak işlem tamamlanmadı.
204 – İçerik Yok Sunucu isteği başarıyla işleme koydu, ancak hiçbir içerik dönmedi.
304 – Değiştirilmedi Kaynak, istek başlıkları If-Modified-Since veya If-None-Match'te belirtilen sürümdür. Müşterinin daha önce indirilmiş bir kopyası olduğu için kaynağı yeniden iletmeye gerek yok.
HTTP Hata Kodları
400 – Bad Request Sunucu, açıkça müşteri hatası nedeniyle isteği işlemeyi reddediyor veya reddediyor. Mesaj gövdesi, hata bilgilerini döndürecek.
400 – Bad Request Sunucu, açıkça bir istemci hatası nedeniyle isteği işlemeyi reddediyor veya işlemiyor. Mesaj gövdesi, hata bilgilerini geri döndürecek.
401 – Unauthorized İstek, kullanıcı doğrulaması gerektiriyor ve geçersiz veya eksik API kimlik bilgileri nedeniyle reddedildi.
403 – Forbidden Sunucu isteği anladı, ancak je erişmene izin verilmediği veya kimlik bilgilerinin erişim için iptal edildiği için yerine getirmeyi reddediyor.
404 – Not found İstenen kaynak bulunamadı. Bu hata geçici veya kalıcı bir durumdan kaynaklanabilir.
405 – Method Not Allowed Kullanılan istek yöntemi, istenen API uç noktası tarafından desteklenmiyor.
405 – Method Not Allowed Kullanılan istek yöntemi, istenen API uç noktası tarafından desteklenmiyor.
429 – Too Many Request Kullanıcı API istek sınırını aştı. Yeni bir istek yapabilmek için beklemeniz gereken saniye sayısını döndürülen Yeniden Dene-Sonrası başlığını kontrol et. Güncel istek limitlerimizi öğrenmek için lütfen hız sınırlaması bölümümüze bak.
500 – Internal Server Error Sunucumuzda talebini karşılamasını engelleyen bir hata oluştu. Geliştiricilerimiz, ilk uyarı olarak bir hafta boyunca kahvelerinden mahrum kalacaklar...
503 – Service Unavailable Sunucularımızda bir sorun olabilir ve taleplerini karşılayamayız.
Hata mesajları
API hatası döndüğünde, hata açıklamasını içeren JSON nesnesini doğrudan yanıt gövdesinde ekler. Hata mesajı şöyle görünebilir:
{
"status": 400,
"error": 1,
"message": "Missing required request parameters: [access_token]"
}
Sınırlamalar
API'miz, tüm kullanıcılarımıza bant genişliği kaynaklarını eşit olarak paylaştırmak için bir istek hız sınırı getirmiştir. Mevcut hız sınırlamaları, her kullanıcı başına saniyede 2 istek şeklindedir, ancak alım emirleri için farklıdır. Alım emirlerinde, her 8 saniyede en fazla bir emir yerleştirebilirsin.
Saniyedeki izin verilen istek sayısını aşarsan, bir 429 hatası yanıt kodu alırsın. Lütfen yanıtla birlikte gelen Retry-After başlığına bak, bu başlıkta bir sonraki isteği yapabilmen için beklemen gereken saniye sayısı yer almaktadır.