Client API CEX Plus per Delphi

· Componenti

A partire da sgcWebSockets 2023.8.0 è supportata l'API CEX.IO Plus.

API supportate

API WebSockets

WebSocket è un protocollo di comunicazione full-duplex basato su TCP. Full-duplex significa che entrambe le parti possono inviarsi messaggi in modo asincrono usando lo stesso canale di comunicazione. Questa sezione descrive quali messaggi Exchange Plus e il client devono scambiarsi. Tutti i messaggi devono essere oggetti JSON validi.

L'API WebSocket si usa per lo più per ottenere informazioni o eseguire azioni che non sono disponibili o non sono facili da realizzare tramite l'API REST. Tuttavia, alcune richieste o azioni sono possibili sia tramite API REST sia tramite API WebSocket. Exchange Plus invia messaggi al client come risposta a una richiesta inviata in precedenza dal client, oppure come notifica di un evento (senza una richiesta preventiva del client). 

Chiamate API pubbliche

Il rate limit dell'API pubblica è imposto per proteggere il sistema da attacchi DDoS e per garantire che tutti i client possano avere lo stesso livello di accesso stabile agli endpoint dell'API di Exchange Plus. Le richieste pubbliche sono limitate in base all'indirizzo IP da cui vengono effettuate. I limiti di richiesta sono determinati dal costo associato a ciascuna chiamata API pubblica. Per impostazione predefinita, ogni richiesta pubblica ha un costo di 1 punto, ma per alcune richieste specifiche questo costo può essere più alto. Consulta le informazioni aggiornate sul costo del rate limit nella specifica di ogni metodo.

Exchange Plus limita le chiamate API pubbliche a un massimo di 100 punti al minuto, tenendo conto del fatto che ogni chiamata API pubblica ha il proprio costo (vedi sotto). Se viene raggiunto il rate limit delle richieste, Exchange Plus risponde con un errore, invia un evento di disconnessione al client e chiude la connessione WS. Exchange Plus continuerà a servire il client a partire dal minuto di calendario successivo. Nell'esempio seguente, il contatore delle richieste verrà azzerato alle 11:02:00.000. 

Esempio: ottenere l'ultimo ticker della coppia BTC-USD

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; 

Chiamate API private

Exchange Plus usa le API key per consentire l'accesso alle API private.

Il client può generare, configurare e gestire le API key, impostare i livelli di permesso, gli IP autorizzati per ciascuna API key, ecc., tramite il Web Terminal di Exchange Plus nella sezione di gestione delle API Key del profilo.

Limite di API Key: per impostazione predefinita il client può avere fino a 5 API Key.

Per limitare l'accesso a determinate funzionalità tramite le API Key occorre definire un insieme specifico di permessi per ogni API Key. L'insieme definito può essere modificato successivamente, se necessario.

Per le API Key sono disponibili i seguenti livelli di permesso:


Esempio: ottenere gli ordini.

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; 

Demo CEX Plus per Windows

Scarica la demo CEX Plus per Windows realizzata con la libreria sgcWebSockets. https://www.esegece.com/download/protocols/sgcCEXPlus.zip