하아찡
C# 바이낸스 API 사용 - 2(Rest API) 본문
Binance쪽에서 제공해주는 REST API를 사용해서 데이터를 받고 또는 주문하는 방식을 사용할겁니다.
일단 단순하게 REST API는 내가 필요한 API 함수의 URI를 정확하게 알아야 합니다.
Binance에서 제공해주는 주소가 있습니다. 추후에 작업을 하면서 URI를 정리해서 올리겠습니다. 그전까진 바이낸스에서 제공하는 홈페이지에서 찾아서 사용하셔야 합니다.
https://developers.binance.com/docs/binance-spot-api-docs/rest-api#test-connectivity
Rest API | Binance Open Platform
General API Information
developers.binance.com
그래서 자신이 사용할 URI를 찾으셨으면 해당 자원이 Get, Post, (Put, Patch), Delete인지 확인을 합니다.
위와 같은 방식들은 어떠할때 쓰냐 하면,
값을 얻을때(읽기)는 Get방식을 사용하게되고,
자신이 바이낸스쪽에 어떠한 데이터를 생성 하는 일이 있을땐 Post방식을 사용하며,
Put, Patch는 데이터를 수정해야 할 일이 있을때,
Delete는 데이터를 삭제해야 할 일이 있을때 사용합니다.
C : CREATE
R : READ
U : UPDATE
D : DELETE
해당 동작을 하는 것들의 명칭을 CRUD이라고 합니다.
두가지 예를 들어보겠습니다.
하나는 API키값이 필요없는 요청과
다른 하나는 API키값을 사용해야 하는 요청 두가지를 보여드리겠습니다.
앞선 내용을 설명하기전에 API호출은 바이낸스에서 따로 정해준 URL를 사용하셔야합니다.
위와 같이 여러개의 URL이 존재하며 작성자 본인은
https://api.binance.com
위 URL를 사용해서 API 호출을 하겠습니다.
먼저 API키값이 필요없는 요청을 보겠습니다.
예를 들어볼것은 바이낸스 서버시간을 받아오는 API를 호출해볼겁니다.
데이터를 받아오기 위해 GET방식으로 제공을 합니다.
https://api.binance.com/api/v3/time
위 주소를 URL에 입력해보시면 아래와 같이 Rest API를 사용해서 서버 시간을 받아오실 수 있습니다.
다른하나의 예는 API키값이 필요한 요청입니다.
바이낸스 Spot쪽에 Account 함수입니다. Account함수는 자신의 잔고를 확인하기 위한 함수임으로 API키가 필요합니다.
위 사진을 보면 Get방식으로 사용합니다. 즉, 자신이 바이낸스에서 Account 데이터가 필요할때 해당 URI를 사용해서 데이터를 받아오게 됩니다.
하지만 Account 정보는 자신의 API키값이 필요하며, 이전 블로그 글에서 작성해서 발급받은 API Key와 Secret Key값이 필요합니다.
API키값은 헤더에 올려서 전송하며
Secret Key값은 URI뒤에 signature에 붙여서 전송하게 됩니다.
데이터를 보내기전에 바이낸스쪽에서 해당 API를 사용할때 필수적으로 붙어야하는 파라미터 설명들이 있습니다 해당 파라미터 설명을 잘 참고하여 데이터를 전송하시면 정상적인 데이터를 받으실 수 있습니다.
위 사진이 account API를 사용할때 필요한 파라미터라고 적혀 있습니다. 여기서 꼭 보내줘야하는 파라미터값은 timestamp값을 Long형태 즉 정수형태로 보내달라고 합니다.
omitZeroBalances는 Bool형태로 True, False 둘중 하나의 값으로 보내야합니다.
해당 값을 Trrue로 보냈을경우 잔고가 0인 정보는 보내지 않고 False일 경우 잔고가 0인 정보도 전부다 받겠다라고 하는겁니다.
recvWindow는 해당 시간동안 데이터를 처리하지 못했을때 자동으로 취소하는 응답 대기시간 최대 시간설정입니다.
해당값은 60000을 넘을수 없으며 단위는 ms입니다. 즉 최대 응답 대기시간은 60초까지 가능합니다.
그래서 위와같은 정보를 종합해서 API를 사용해서 잔고를 확인할라면 아래와 같은 경로가 생성이 됩니다.
https://api.binance.com/api/v3/account/timestamp=123123123& omitZeroBalances=true& signature=mySecretKey
(위 주소는 임의로 작성한 주소이며 정삭적인 작동이 되지 않습니다.)
생성된 경로로 들어가서 값을 확인해보면 아래와 같은 데이터가 JSON형식으로 들어옵니다.
{
"makerCommission": 10,
"takerCommission": 10,
"buyerCommission": 0,
"sellerCommission": 0,
"commissionRates": {
"maker": "0.00100000",
"taker": "0.00100000",
"buyer": "0.00000000",
"seller": "0.00000000"
},
"canTrade": true,
"canWithdraw": true,
"canDeposit": true,
"brokered": false,
"requireSelfTradePrevention": false,
"preventSor": false,
"updateTime": 1727795949540,
"accountType": "SPOT",
"balances": [
{
"asset": "EOS",
"free": "0.03140000",
"locked": "0.00000000"
},
{
"asset": "XRP",
"free": "0.61058700",
"locked": "0.00000000"
}
],
"permissions": [
"SPOT"
],
"uid": 301720331
}
이다음 설명은 C#으로 API 호출하는 방법을 소개해 드리겠습니다.
'C# > 바이낸스' 카테고리의 다른 글
C# 바이낸스 API 사용 - 3(C# Rest API 호출) (0) | 2024.10.05 |
---|---|
C# 바이낸스 API 사용 - 1(바이낸스 API키 발급) (3) | 2024.10.04 |