Delphi CEX Plus API-client

· Componenten

Vanaf sgcWebSockets 2023.8.0 wordt de CEX.IO Plus-API ondersteund.

Ondersteunde API's

WebSockets-API

WebSocket is een TCP-gebaseerd full-duplex-communicatieprotocol. Full-duplex betekent dat beide partijen elkaar asynchroon berichten kunnen sturen via hetzelfde communicatiekanaal. Deze sectie beschrijft welke berichten Exchange Plus en client elkaar moeten sturen. Alle berichten moeten geldige JSON-objecten zijn.

De WebSocket-API wordt vooral gebruikt om informatie op te halen of acties uit te voeren die niet beschikbaar zijn of niet eenvoudig uit te voeren zijn via de REST-API. Sommige requests of acties kunnen echter zowel via de REST-API als via de WebSocket-API worden uitgevoerd. Exchange Plus stuurt berichten naar de client als antwoord op een eerder door de client verstuurd request, of als melding van een bepaalde gebeurtenis (zonder voorafgaand request van de client). 

Publieke API-aanroepen

Er geldt een rate-limit voor de publieke API om het systeem te beschermen tegen DDoS-aanvallen en om te zorgen dat alle clients hetzelfde stabiele toegangsniveau hebben tot de endpoints van Exchange Plus. Publieke requests worden gelimiteerd per IP-adres waar de publieke API-requests vandaan komen. De request-limieten worden bepaald aan de hand van de kosten die aan elke publieke API-aanroep zijn verbonden. Standaard kost elk publiek request 1 punt, maar voor sommige specifieke requests kan deze kostprijs hoger zijn. Bekijk de actuele kostprijs van de rate-limit in de specificatie van elke methode.

Exchange Plus beperkt publieke API-aanroepen tot maximaal 100 punten per minuut, waarbij elke publieke API-aanroep zijn eigen kosten heeft (zie hieronder). Als de rate-limit wordt bereikt, antwoordt Exchange Plus met een fout, stuurt een disconnected-event naar de client en sluit daarna de WS-verbinding. Exchange Plus zal de client weer bedienen vanaf de volgende kalenderminuut. In het volgende voorbeeld wordt de request-teller gereset om 11:02:00.000. 

Voorbeeld: de laatste ticker van het BTC-USD-paar opvragen

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;

Privé-API-aanroepen

Exchange Plus gebruikt API-sleutels om toegang te geven tot de privé-API's.

De client kan API-sleutels genereren, configureren en beheren, permissieniveaus instellen, IP-adressen op de whitelist zetten enzovoort via het Exchange Plus Web Terminal in het sectie-onderdeel API Keys Management Profile.

Limiet API-sleutels: standaard kan de client maximaal 5 API-sleutels hebben.

Om de toegang tot bepaalde functionaliteit te beperken bij het gebruik van API-sleutels moet er voor elke API-sleutel een specifieke set permissies worden gedefinieerd. De gedefinieerde set permissies kan indien nodig naderhand worden bewerkt.

De volgende permissieniveaus zijn beschikbaar voor API-sleutels:


Voorbeeld: de orders opvragen.

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 voor Windows

Download de CEX Plus-demo voor Windows, gebouwd met de sgcWebsockets-bibliotheek. https://www.esegece.com/download/protocols/sgcCEXPlus.zip