API Temel Bilgileri
baseurl
https://openapi.xxx.com
Tüm uç noktalar, bir JSON nesnesi veya dizisi döndürür.
Veriler Ters sırada döndürülür. önce en yeni, en eski en son.
Tüm zaman ve zaman damgası ile ilgili alanlar milisaniye cinsindendir.
HTTP Hata KodlarıHTTP 4XX dönüş kodları, hatalı biçimlendirilmiş istekler için kullanılır; Sorun gönderici tarafında.
HTTP 429 dönüş kodu, bir istek oranı sınırını aşarken kullanılır.
HTTP 418 dönüş kodu, 429 kod aldıktan sonra istek göndermeye devam etmek için bir IP otomatik olarak yasaklandığında kullanılır.
Dahili hatalar için HTTP 5XX dönüş kodları kullanılır
API mesajı başarıyla gönderdiğinde ancak zaman aşımı süresi içinde yanıt alamadığında HTTP 504 dönüş kodu kullanılır. Bunu bir başarısızlık operasyonu olarak GÖRMEMEK önemlidir; yürütme durumu BİLİNMİYOR ve başarılı olabilirdi.
Tüm uç noktalar muhtemelen bir HATA döndürebilir, hata yükü aşağıdaki gibidir:
1
{
2
"kod":-1121,
3
"msg":"Geçersiz sembol."
4
}kopyalandı!
Genel bilgiTüm istekler Https protokolüne dayalıdır ve istek başlığı bilgilerindeki İçerik Türü'nün tek tip olarak şu şekilde ayarlanması gerekir:'application/json'
GET yönteminin arabirimi için parametreler sorgu dizesinde gönderilmelidir.
POST yönteminin arayüzü, parametreler istek gövdesine gönderilmelidir.
Parametreler herhangi bir sırayla gönderilebilir.
SINIRLARHer arayüzün altında sınırlı bir frekans açıklaması olacaktır.
Herhangi bir hız sınırı ihlal edildiğinde bir 429 iade edilecektir.
Herhangi bir hız sınırı ihlal edildiğinde bir 429 iade edilecektir.
Uç Nokta Güvenlik TürüHer uç nokta, onunla nasıl etkileşim kuracağınızı belirleyen bir güvenlik türüne sahiptir.
API anahtarları, X-CH-APIKEY başlığı aracılığıyla Rest API'ye geçirilir.
API anahtarları ve gizli anahtarlar büyük/küçük harf duyarlıdır.
Güvenlik Türü
Tanım
YOK
Uç noktaya serbestçe erişilebilir.
TİCARET
Uç nokta, geçerli bir API Anahtarı ve imza gönderilmesini gerektirir.
KULLANICI BİLGİSİ
Uç nokta, geçerli bir API Anahtarı ve imza gönderilmesini gerektirir.
USER_STREAM
Uç nokta, geçerli bir API Anahtarı gönderilmesini gerektirir.
PİYASA VERİLERİ
Uç nokta, geçerli bir API Anahtarı gönderilmesini gerektirir.
İMZALANMIŞ (TİCARET ve USER_DATA) uç nokta güvenliğiTRADE veya USER_DATA arabirimini çağırırken, HTTP başlığındaki X-CH-SIGN alanına imza parametresi geçirilmelidir.
İmza, HMAC SHA256 algoritmasını kullanır. API-KEY'e karşılık gelen API-Secret, HMAC SHA256 anahtarı olarak kullanılır.
X-CH-SIGN'ın istek başlığı, işlem nesnesi olarak zaman damgası + yöntem + requestPath + gövde dizesine (+ dize bağlantısı anlamına gelir) dayanır.
Zaman damgasının değeri X-CH-TS istek başlığı ile aynıdır, metot istek metodudur ve harflerin tamamı büyük harftir: GET/POST
requestPath, istek arabirimi yoludur. Örneğin: /sapi/v1/order
gövde, istek gövdesinin dizesidir (yalnızca gönderi)
İmza büyük/küçük harf duyarlı değildir.
Zamanlama Güvenliğiİmza arayüzünün HTTP başlığındaki X-CH-TS alanındaki zaman damgasını iletmesi gerekir ve değeri, istek gönderme zamanının unix zaman damgası olmalıdır; 1528394129373
İsteğin geçerli olduğu zaman damgasından sonraki milisaniye sayısını belirtmek için recvWindow adlı ek bir parametre gönderilebilir. recvWindow gönderilmezse, varsayılan olarak 5000'dir.
Ayrıca sunucu, istemcinin zaman damgasının, sunucunun zamanının bir saniyesinden "gelecekte" olduğunu hesaplarsa, isteği de reddedecektir.
Mantık aşağıdaki gibidir:
1
if(timestamp <(serverTime +1000)&&(serverTime - timestamp)<= recvWindow){
2
// isteği işle
3
}başka{
4
// isteği reddet
5
}kopyalandı!
Ciddi ticaret zamanlama ile ilgilidir. Ağlar kararsız ve güvenilmez olabilir, bu da isteklerin sunuculara ulaşmasının değişen miktarlarda zaman almasına neden olabilir. recvWindow ile, isteğin belirli bir milisaniye sayısı içinde işlenmesi veya sunucu tarafından reddedilmesi gerektiğini belirtebilirsiniz.
5000 veya daha az küçük bir recvWindow kullanılması önerilir!
POST /sapi/v1/order için İMZALANAN Uç Nokta Örnekleri
Echo, openssl ve curl kullanarak Linux komut satırından geçerli imzalı bir yükün nasıl gönderileceğine ilişkin adım adım bir örnek.
Anahtar
Değer
APIAnahtarı
vmPUZE6mv9SD5V5e14y7Ju91duEh8A
gizli anahtar
902ae3cb34ecee2779aa4d3e1d226686
Parametre
değer
sembol
BTCUSDT
yan
SATIN ALMAK
tip
SINIR
Ses
1
fiyat
9300
İmza örneğigövde:
1
{"sembol":"BTCUSDT","fiyat":"9300","hacim":"1","yan":"SATIN AL"","tür":"SINIR"}kopyalandı!
HMAC SHA256 İmzası:
1
[linux]$ echo -n "1588591856950POST/sapi/v1/sipariş/test{\"symbol\":\"BTCUSDT\",\"fiyat\":\"9300\",\"hacim\":\" 1\",\"yan\":\"SATIN AL\",\"tür\":\"SINIR\"}"| openssl dgst -sha256 -hmac "902ae3cb34ecee2779aa4d3e1d226686"
2
(stdin)= c50d0a74bb9427a9a03933d0eded03af9bf50115dc5b706882a4fcf07a26b761kopyalandı!
Kıvrılma komutu:
1
(HMAC SHA256)
2
[linux]$ curl -H "X-CH-APIKEY: c3b165fd5218cdd2c2874c65da468b1e" -H "X-CH-SIGN: c50d0a74