get 방식으로 받아 가져오기 질문
본문
안녕하세요.
비트코인 시세를 보려고 페이지를 하나 만드려고 하는데요
업비트에서 API를 제공하더라구요
https://crix-api-endpoint.upbit.com/v1/crix/candles/days/?code=CRIX.UPBIT.KRW-BTC
접속하면
[{"candleDateTime":"2022-10-13T00:00:00+00:00","candleDateTimeKst":"2022-10-13T09:00:00+09:00","openingPrice":27460000.00000000,"highPrice":27674000.00000000,"lowPrice":26400000.00000000,"tradePrice":27636000.00000000,"candleAccTradeVolume":6996.44326874,"candleAccTradePrice":188635457632.80633000,"timestamp":1665682763371,"code":"CRIX.UPBIT.KRW-BTC","prevClosingPrice":27460000.00000000,"change":"RISE","changePrice":176000.00000000,"signedChangePrice":176000.00000000,"changeRate":0.0064093227,"signedChangeRate":0.0064093227}]
이런식으로 나오는데
이렇게 제공되는 데이터를 페이지 에서 어떻게 하면 받아올 수 있는건지 모르겟습니다.
이런식으로 만들려고 하거든요
혹시 방법을 아시는 고수님들 부탁드리겠습니다. ㅠ
!-->답변 4
실시간 웹소켓으로 가져오면 편해요
https://docs.upbit.com/docs/upbit-quotation-websocket
예제)
var socket; // 소켓
// 웹소켓 연결
function connectWS() {
if(socket != undefined){
socket.close();
}
socket = new WebSocket("wss://api.upbit.com/websocket/v1");
socket.binaryType = 'arraybuffer';
socket.onopen = function(e){
filterRequest('[{"ticket":"UNIQUE_TICKET"},
{"type":"ticker","codes":["KRW-BTC"]}, // "KRW-BTC","KRW-ETH" -> parsing
{"type":"orderbook","codes":["KRW-BTC"]},
{"type":"trade","codes":["KRW-BTC"]}]');
}
socket.onclose = function(e){
socket = undefined;
}
socket.onmessage= function(e){
var enc = new TextDecoder("utf-8");
var arr = new Uint8Array(e.data);
var str_d = enc.decode(arr);
var d = JSON.parse(str_d);
if(d.type == "ticker") { // 현재가 데이터
// 여기다 실행문 예로는 $("#btc").html(d.trade_price); 이런식
}
if(d.type == "orderbook") { // 호가 데이터
// TODO
}
if(d.type == "trade") { // 체결 데이터
// TODO
}
}
}
// 웹소켓 연결 해제
function closeWS() {
if(socket != undefined){
socket.close();
socket = undefined;
}
}
// 웹소켓 요청
function filterRequest(filter) {
if(socket == undefined){
alert('no connect exists');
return;
}
socket.send(filter);
}
connectWS();
!-->
Php json으로 검색 한번 해 보세요
php curl 을 검색하면 답이 나옵니다.
https://www.google.com/search?q=php+curl+%EC%97%85%EB%B9%84%ED%8A%B8&oq=php+curl+%EC%97%85%EB%B9%84%ED%8A%B8
스크립트 ajax 통신하셔서 받은데이터를 JSON.parse 해주시고 배치하시면 될거같습니다~
$.ajax({
url: `https://crix-api-endpoint.upbit.com/v1/crix/candles/days/?code=CRIX.UPBIT.KRW-BTC`,
type: "GET",
success: function(res) {
var result = JSON.parse(res);
...
}
})