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

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

QA

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}]

 

이런식으로 나오는데

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

 

3076732454_1665682808.2722.png

 

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

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

이 질문에 댓글 쓰기 :

답변 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();

 

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

        ...

      }

    })

답변을 작성하시기 전에 로그인 해주세요.
전체 123,501 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT