Skip to content

Commit 2bafd34

Browse files
committed
rest demo
1 parent b9cd9f7 commit 2bafd34

File tree

4 files changed

+371
-1
lines changed

4 files changed

+371
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
# REST-API-demos
1+
# README
2+
Bibox REST API demos.

nodejs/api.js

Lines changed: 307 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,307 @@
1+
2+
let CryptoJS = require("crypto-js");
3+
let request = require("request");
4+
5+
const MARKET_URI = 'https://api.bibox.com/v1/mdata';
6+
const TRANSFER_URI = 'https://api.bibox.com/v1/transfer';
7+
const TRADE_URI = 'https://api.bibox.com/v1/orderpending';
8+
9+
let doPost = function (url, params, callBack) {
10+
request.post({url: url, form: params}, function (error, response, body) {
11+
if (!error && response && response.statusCode===200) {
12+
let result = JSON.parse(body);
13+
callBack(result);
14+
} else {
15+
console.log('err: ', error);
16+
callBack(error);
17+
}
18+
});
19+
};
20+
21+
let doGet = function (url, callBack) {
22+
request.get({url: url}, function (error, response, body) {
23+
if (!error && response && response.statusCode===200) {
24+
let result = JSON.parse(body);
25+
callBack(result);
26+
} else {
27+
console.log('err: ', error);
28+
callBack(error);
29+
}
30+
});
31+
};
32+
33+
let getSign = function (data) {
34+
var secret = 'your apikey secret';
35+
var sign = CryptoJS.HmacMD5(JSON.stringify(data), secret).toString();
36+
return sign;
37+
};
38+
39+
let doApiRequestWithApikey = function (url, cmds, callBack) {
40+
let form = {
41+
cmds: JSON.stringify(cmds),
42+
apikey: 'your apikey',
43+
sign: getSign(cmds)
44+
};
45+
46+
doPost(url, form, function (result) {
47+
callBack(result);
48+
});
49+
};
50+
51+
let doApiRequest = function (url, cmds, callBack) {
52+
let form = {
53+
cmds: JSON.stringify(cmds)
54+
};
55+
56+
doPost(url, form, function (result) {
57+
callBack(result);
58+
});
59+
};
60+
61+
let getDepth = function (pair, size) {
62+
let _func_name_ = 'getDepth';
63+
64+
//GET
65+
let get_url = MARKET_URI + '?cmd=depth&pair=' + pair + '&size=' + size;
66+
67+
doGet(get_url, function (res) {
68+
console.log('%s: GET return:', _func_name_, JSON.stringify(res));
69+
});
70+
71+
72+
//POST
73+
let cmds = [
74+
{
75+
cmd: "api/depth",
76+
body: {
77+
pair: pair,
78+
size: size
79+
}
80+
}
81+
];
82+
83+
doApiRequest(MARKET_URI, cmds, function (res) {
84+
console.log('%s: POST return:', _func_name_, JSON.stringify(res));
85+
});
86+
};
87+
88+
89+
let getDeals = function (pair, size) {
90+
let _func_name_ = 'getDeals';
91+
92+
let cmds = [
93+
{
94+
cmd: "api/deals",
95+
body: {
96+
pair: pair,
97+
size: size
98+
}
99+
}
100+
];
101+
102+
doApiRequest(MARKET_URI, cmds, function (res) {
103+
console.log('%s: return:', _func_name_, JSON.stringify(res));
104+
});
105+
};
106+
107+
108+
let getKline = function (pair, period, size) {
109+
let _func_name_ = 'getKline';
110+
111+
let cmds = [
112+
{
113+
cmd: "api/kline",
114+
body: {
115+
pair: pair,
116+
period: period,
117+
size: size
118+
}
119+
}
120+
];
121+
122+
doApiRequest(MARKET_URI, cmds, function (res) {
123+
console.log('%s: return:', _func_name_, JSON.stringify(res));
124+
});
125+
};
126+
127+
let getTicker = function (pair) {
128+
let _func_name_ = 'getTicker';
129+
130+
let cmds = [
131+
{
132+
cmd: "api/ticker",
133+
body: {
134+
pair: pair
135+
}
136+
}
137+
];
138+
139+
doApiRequest(MARKET_URI, cmds, function (res) {
140+
console.log('%s: return:', _func_name_, JSON.stringify(res));
141+
});
142+
};
143+
144+
let getMarket = function (pair) {
145+
let _func_name_ = 'getMarket';
146+
147+
let cmds = [
148+
{
149+
cmd: "api/market",
150+
body: {
151+
pair: pair
152+
}
153+
}
154+
];
155+
156+
doApiRequest(MARKET_URI, cmds, function (res) {
157+
console.log('%s: return:', _func_name_, JSON.stringify(res));
158+
});
159+
};
160+
161+
let getMarketAll = function () {
162+
let _func_name_ = 'getMarketAll';
163+
164+
let cmds = [
165+
{
166+
cmd: "api/marketAll",
167+
body: {}
168+
}
169+
];
170+
171+
doApiRequest(MARKET_URI, cmds, function (res) {
172+
console.log('%s: return:', _func_name_, JSON.stringify(res));
173+
});
174+
};
175+
176+
let getUserOrderPending = function (pair, account_type, page, size) {
177+
let _func_name_ = 'getUserOrderPending';
178+
179+
let cmds = [
180+
{
181+
cmd: "orderpending/orderPendingList",
182+
body: {
183+
pair: pair,
184+
page: page,
185+
size: size
186+
}
187+
}
188+
];
189+
190+
doApiRequestWithApikey(TRADE_URI, cmds, function (res) {
191+
console.log('%s: return:', _func_name_, JSON.stringify(res));
192+
});
193+
};
194+
195+
let getUserOrderHistory = function (pair, account_type, page, size) {
196+
let _func_name_ = 'getUserOrderHistory';
197+
198+
let cmds = [
199+
{
200+
cmd: "orderpending/orderHistoryList",
201+
body: {
202+
pair: pair,
203+
page: page,
204+
size: size
205+
}
206+
}
207+
];
208+
209+
doApiRequestWithApikey(TRADE_URI, cmds, function (res) {
210+
console.log('%s: return:', _func_name_, JSON.stringify(res));
211+
});
212+
};
213+
214+
let doTrade = function (trade_order) {
215+
let _func_name_ = 'doTrade';
216+
217+
let cmds = [
218+
{
219+
cmd: "orderpending/trade",
220+
body: {
221+
pair: trade_order.pair,
222+
account_type: trade_order.account_type,
223+
order_type: trade_order.order_type,
224+
order_side: trade_order.order_side,
225+
price: trade_order.price,
226+
amount: trade_order.amount
227+
}
228+
}
229+
];
230+
231+
doApiRequestWithApikey(TRADE_URI, cmds, function (res) {
232+
console.log('%s: return:', _func_name_, JSON.stringify(res));
233+
});
234+
};
235+
236+
let doCancelTrade = function (orders_id) {
237+
let _func_name_ = 'doCancelTrade';
238+
239+
let cmds = [
240+
{
241+
cmd: "orderpending/cancelTrade",
242+
body: {
243+
orders_id: orders_id
244+
}
245+
}
246+
];
247+
248+
doApiRequestWithApikey(TRADE_URI, cmds, function (res) {
249+
console.log('%s: return:', _func_name_, JSON.stringify(res));
250+
});
251+
};
252+
253+
let getUserAssets = function () {
254+
let _func_name_ = 'getUserAssets';
255+
256+
let cmds = [
257+
{
258+
cmd: "transfer/assets",
259+
body: {
260+
select: 1
261+
}
262+
}
263+
];
264+
265+
doApiRequestWithApikey(TRANSFER_URI, cmds, function (res) {
266+
console.log('%s: return:', _func_name_, JSON.stringify(res));
267+
});
268+
};
269+
270+
let doTest = function () {
271+
//depth
272+
getDepth('LTC_BTC', 10);
273+
//deals
274+
getDeals('LTC_BTC', 10);
275+
//ticker
276+
getTicker('LTC_BTC');
277+
//market
278+
getMarket('LTC_BTC');
279+
//all markets
280+
getMarketAll();
281+
//kline
282+
getKline('LTC_BTC', '1min', 10);
283+
284+
285+
// user order pending
286+
getUserOrderPending('EOS_BTC', 0, 1, 10);
287+
// user order history
288+
getUserOrderHistory('BIX_BTC', 0, 1, 10);
289+
// user assets
290+
getUserAssets();
291+
292+
//place an order
293+
let trade_order = {
294+
account_type: 0,
295+
order_type: 2,
296+
order_side: 1,
297+
pair: 'BIX_BTC',
298+
price: 0.00001688,
299+
amount: 1
300+
};
301+
doTrade(trade_order);
302+
303+
//cancel an order
304+
doCancelTrade(7790955);//orders_id
305+
};
306+
307+
// doTest();

nodejs/package.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "api-sample",
3+
"version": "1.0.0",
4+
"description": "Bibox api sample",
5+
"main": "",
6+
"scripts": {
7+
"test": "test"
8+
},
9+
"keywords": [
10+
"api"
11+
],
12+
"author": "Bibox",
13+
"license": "ISC",
14+
"dependencies": {
15+
"crypto-js": "^3.1.9-1",
16+
"request": "*"
17+
}
18+
}

python/api.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import hmac
2+
import hashlib
3+
import json, requests
4+
5+
def getSign(data,secret):
6+
result = hmac.new(secret.encode("utf-8"), data.encode("utf-8"), hashlib.md5).hexdigest()
7+
return result
8+
9+
def doApiRequestWithApikey(url, cmds, api_key, api_secret):
10+
s_cmds = json.dumps(cmds)
11+
sign = getSign(s_cmds,api_secret)
12+
r = requests.post(url, data={'cmds': s_cmds, 'apikey': api_key,'sign':sign})
13+
print(r.text)
14+
15+
def post_order(api_key,api_secret,cmds):
16+
url = "https://api.bibox.com/v1/orderpending"
17+
doApiRequestWithApikey(url,cmds,api_key,api_secret)
18+
19+
20+
api_key = 'your api_key'
21+
api_secret = 'your api_secret'
22+
23+
account_type = 0
24+
order_type = 2
25+
order_side = 1
26+
pair = 'BIX_ETH'
27+
price = 0.00081600
28+
amount = 0.1
29+
30+
cmds = [
31+
{
32+
'cmd':"orderpending/trade",
33+
'body':{
34+
'pair':pair,
35+
'account_type':account_type,
36+
'order_type':order_type,
37+
'order_side':order_side,
38+
'price':price,
39+
'amount':amount
40+
}
41+
}
42+
]
43+
44+
post_order(api_key,api_secret,cmds)

0 commit comments

Comments
 (0)