Cliente CEX Plus API para Delphi

· Componentes

A partir de sgcWebSockets 2023.8.0 se admite la API de CEX.IO Plus.

APIs compatibles

API WebSockets

WebSocket es un protocolo de comunicación full-duplex basado en TCP. Full-duplex significa que ambas partes pueden enviarse mensajes de forma asíncrona usando el mismo canal de comunicación. Esta sección describe qué mensajes deben enviarse Exchange Plus y Client mutuamente. Todos los mensajes deben ser objetos JSON válidos.

La API WebSocket se usa principalmente para obtener información o realizar acciones que no están disponibles o no son fáciles de hacer mediante la API REST. Sin embargo, algunas peticiones o acciones se pueden hacer tanto en la API REST como en la API WebSocket. Exchange Plus envía mensajes al Client como respuesta a una petición previamente enviada por el Client, o como notificación de algún evento (sin petición previa del Client). 

Llamadas a la API pública

El rate limit de la API pública existe para proteger al sistema frente a ataques DDoS y garantizar que todos los clientes tengan el mismo nivel de acceso estable a los endpoints de la API de Exchange Plus. Las peticiones públicas se limitan por la dirección IP desde la que se realizan. Los límites de peticiones se determinan por el coste asociado a cada llamada pública. Por defecto, cada petición pública tiene un coste de 1 punto, pero para algunas peticiones concretas este coste puede ser mayor. Consulta la información actualizada del coste de rate limit en la especificación de cada método.

Exchange Plus limita las llamadas a la API pública a un máximo de 100 puntos por minuto, teniendo en cuenta que cada llamada pública tiene su propio coste (ver más abajo). Si se alcanza el rate limit, Exchange Plus responde con un error, envía un evento de desconexión al cliente y a continuación cierra la conexión WS. Exchange Plus seguirá atendiendo al cliente a partir del siguiente minuto natural. En el ejemplo siguiente, el contador de peticiones se reinicia a las 11:02:00.000. 

Ejemplo: obtener el último ticker del par 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; 

Llamadas a la API privada

Exchange Plus utiliza api keys para permitir el acceso a las APIs privadas.

El cliente puede generar, configurar y gestionar las api keys, establecer niveles de permisos, IPs en lista blanca para cada api key, etc., a través del Web Terminal de Exchange Plus en la sección API Keys Management Profile.

Límite de API Keys: por defecto el cliente puede tener hasta 5 api keys.

Para restringir el acceso a cierta funcionalidad al usar api keys, debe definirse un conjunto específico de permisos para cada api key. El conjunto de permisos definido puede editarse después si es necesario.

Los niveles de permisos disponibles para las api keys son los siguientes:


Ejemplo: obtener las órdenes.

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 de CEX Plus para Windows

Descarga la demo de CEX Plus para Windows compilada con la librería sgcWebSockets. https://www.esegece.com/download/protocols/sgcCEXPlus.zip