채택완료

get 방식으로 받아 가져오기 질문

2022-10-14 (금) 02:42:04 2,772

안녕하세요.

비트코인 시세를 보려고 페이지를 하나 만드려고 하는데요

업비트에서 API를 제공하더라구요

https://crix-api-endpoint.upbit.com/v1/crix/candles/days/?code=CRIX.UPBIT.KRW-BTC

접속하면

Copy
[{"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}]

이런식으로 나오는데

이렇게 제공되는 데이터를 페이지 에서 어떻게 하면 받아올 수 있는건지 모르겟습니다.

3076732454_1665682808.2722.png

이런식으로 만들려고 하거든요

혹시 방법을 아시는 고수님들 부탁드리겠습니다. ㅠ

|

답변 4개

채택된 답변
+20 포인트
2022-10-14 (금) 09:28:42

실시간 웹소켓으로 가져오면 편해요

https://docs.upbit.com/docs/upbit-quotation-websocket

예제)

Copy
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();

스크립트 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); 

        ...

      }

    })

2022-10-14 (금) 03:48:01

Php json으로 검색 한번 해 보세요

답변을 작성하려면 로그인이 필요합니다.