Delphi CEX-Plus-API-Client

· Komponenten

Ab sgcWebSockets 2023.8.0 wird die CEX.IO-Plus-API unterstützt.

Unterstützte APIs

WebSockets-API

WebSocket ist ein TCP-basiertes Vollduplex-Kommunikationsprotokoll. Vollduplex bedeutet, dass beide Seiten einander asynchron über denselben Kanal Nachrichten senden können. Dieser Abschnitt beschreibt, welche Nachrichten Exchange Plus und Client austauschen sollten. Alle Nachrichten sollten gültige JSON-Objekte sein.

Die WebSocket-API wird vor allem genutzt, um Informationen zu erhalten oder Aktionen auszuführen, die über die REST-API nicht verfügbar oder umständlich sind. Einige Anfragen oder Aktionen sind allerdings sowohl per REST-API als auch per WebSocket-API möglich. Exchange Plus sendet dem Client Nachrichten als Antwort auf eine vorherige Anfrage oder als Benachrichtigung über ein Ereignis (ohne vorherige Anfrage des Clients). 

Aufrufe der öffentlichen API

Für die öffentliche API gilt ein Rate-Limit, um das System vor DDoS-Angriffen zu schützen und allen Clients gleichmäßigen, stabilen Zugriff auf die Exchange-Plus-API-Endpunkte zu sichern. Öffentliche Anfragen werden je IP-Adresse begrenzt, von der die Anfragen ausgehen. Die Limits ergeben sich aus den Kosten je Aufruf. Standardmäßig kostet jede öffentliche Anfrage 1 Punkt; bei bestimmten Anfragen kann dieser Wert höher sein. Aktuelle Angaben zu den Punktkosten findest du in der Spezifikation der jeweiligen Methode.

Exchange Plus begrenzt öffentliche API-Aufrufe auf maximal 100 Punkte pro Minute, wobei jeder Aufruf seine eigenen Kosten hat (siehe unten). Wird das Limit erreicht, antwortet Exchange Plus mit einem Fehler, sendet dem Client ein Disconnected-Ereignis und schließt anschließend die WS-Verbindung. Ab der nächsten Kalenderminute bedient Exchange Plus den Client wieder. Im folgenden Beispiel wird der Zähler um 11:02:00.000 zurückgesetzt. 

Beispiel: aktuellen Ticker des Paars BTC-USD abrufen

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.OnCexPlusConnect := OnCexPlusConnectEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
procedure OnCexPlusConnectEvent(Sender: TObject);
begin
  oCexPlus.GetTicker('BTC-USD');
end;
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Ticker data: ' + Msg);
end; 

Aufrufe der privaten API

Exchange Plus nutzt API-Schlüssel, um den Zugriff auf private APIs zu ermöglichen.

Der Client kann API-Schlüssel über das Exchange-Plus-Web-Terminal im Bereich „API-Keys-Management-Profil“ erzeugen, konfigurieren und verwalten, Berechtigungsstufen festlegen, IP-Whitelists pflegen usw.

API-Schlüssel-Limit: Standardmäßig kannst du bis zu 5 API-Schlüssel haben.

Um den Zugriff bei der Nutzung von API-Schlüsseln auf bestimmte Funktionen einzuschränken, solltest du je Schlüssel einen passenden Satz an Berechtigungen festlegen. Dieser kann bei Bedarf später angepasst werden.

Für API-Schlüssel stehen die folgenden Berechtigungsstufen zur Verfügung:


Beispiel: die Orders abrufen.

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your-api-key';
oCexPlus.CexPlus.ApiSecret := 'your-api-secret';
oCexPlus.OnCexPlusAuthenticated := OnCexPlusAuthenticatedEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
procedure OnCexPlusAuthenticatedEvent(Sender: TObject);
begin
  oCexPlus.GetOrders();
end;
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Orders: ' + Msg);
end; 

CEX-Plus-Demo für Windows

Lade die CEX-Plus-Demo für Windows herunter, die mit der sgcWebsockets-Bibliothek erstellt wurde. https://www.esegece.com/download/protocols/sgcCEXPlus.zip