Delphi CEX Plus API 클라이언트

· 컴포넌트

sgcWebSockets 2023.8.0부터 CEX.IO Plus API가 지원돼요.

지원되는 API

WebSockets API

WebSocket은 TCP 기반의 전이중 통신 프로토콜이에요. 전이중이라는 건 양쪽이 동일한 통신 채널을 사용해 서로에게 비동기적으로 메시지를 보낼 수 있다는 뜻이에요. 이 섹션에서는 Exchange Plus와 클라이언트가 서로 어떤 메시지를 주고받아야 하는지 설명해요. 모든 메시지는 유효한 JSON 객체여야 해요.

WebSocket API는 주로 REST API로는 얻을 수 없거나 쉽게 할 수 없는 정보 조회나 동작을 수행할 때 사용해요. 다만 일부 요청이나 동작은 REST API와 WebSocket API 모두에서 가능해요. Exchange Plus는 클라이언트가 보낸 요청에 대한 응답으로, 또는 이벤트에 대한 알림으로(클라이언트의 사전 요청 없이) 클라이언트에 메시지를 보내요. 

퍼블릭 API 호출

퍼블릭 API 속도 제한은 DDoS 공격으로부터 시스템을 보호하고 모든 클라이언트가 Exchange Plus API 엔드포인트에 동일한 수준의 안정적인 접근을 보장받을 수 있도록 적용돼요. 퍼블릭 요청은 요청이 이루어진 IP 주소를 기준으로 제한돼요. 요청 한도는 각 퍼블릭 API 호출에 부여된 비용에 따라 결정돼요. 기본적으로 각 퍼블릭 요청의 비용은 1 포인트지만, 특정 요청은 그 비용이 더 높을 수 있어요. 최신 요청 속도 제한 비용 정보는 각 메서드 명세에서 확인해 주세요.

Exchange Plus는 퍼블릭 API 호출을 분당 최대 100 포인트로 제한해요(각 퍼블릭 API 호출에는 비용이 있다는 점을 고려해서요). 요청 속도 한도에 도달하면 Exchange Plus는 오류로 응답하고 클라이언트에 disconnected 이벤트를 보낸 다음 WS 연결을 종료해요. Exchange Plus는 다음 분(분 단위 기준)부터 다시 클라이언트에 서비스를 제공해요. 다음 예에서 요청 카운터는 11:02:00.000에 초기화돼요. 

예: BTC-USD 페어의 최신 ticker 가져오기

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; 

프라이빗 API 호출

Exchange Plus는 프라이빗 API 접근을 허용하기 위해 API 키를 사용해요.

클라이언트는 Exchange Plus 웹 터미널의 API Keys Management Profile 섹션에서 API 키를 생성, 설정, 관리할 수 있고 권한 수준, API 키의 허용 IP 등도 설정할 수 있어요.

API 키 한도: 기본적으로 클라이언트는 최대 5개의 API 키를 가질 수 있어요.

API 키 사용 시 특정 기능에 대한 접근을 제한하려면 각 API 키마다 권한 세트를 정의해야 해요. 정의된 권한 세트는 필요할 때 추가로 수정할 수 있어요.

API 키에는 다음 권한 수준을 사용할 수 있어요.


예: 주문 조회.

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; 

Windows용 CEX Plus 데모

sgcWebSockets 라이브러리로 빌드된 Windows용 CEX Plus 데모를 다운로드하세요. https://www.esegece.com/download/protocols/sgcCEXPlus.zip