Closed atoye1 closed 1 year ago
데이터는 위와 같은 형태로 들어옵니다. 위 데이터 중 클라이언트에서 활용할 데이터는 prices입니다. prices를 이용한 각 자산의 가격과 24시간 변화율을 제공받고 싶습니다.
prices[0][1] : 1 days 이전의 가격데이터입니다. prices[1][1] : 현재의 가격데이터입니다.
client에서는 우선적으로 BTC, ETH, DOGE가격을 제공할 생각입니다. 다만, 들어오는 데이터가 지저분해서 정리해서 주시면 감사하겠습니다.
아래와 같은 방식으로 데이터를 정리해주셨으면 합니다. 현재 BTC 가격 : 소수점 셋째 자리에서 반올림 ex) 23128.12 현재 ETH 가격 : 소수점 셋째 자리에서 반올림 ex) 1589.32 현재 DOGE 가격 : 소수점 다섯째 자리에서 반올림 ex) 0.0954
BTC, ETH, DOGE 24시간 변화율 : 소수점 셋째 자리에서 반올림 ex) 1.22, -0.09
위의 api에서도 제석님이 원하는 기능을 한번에 제공해주는데 이걸 사용해도 상관없겠죠?
네 전혀 상관없습니다. usd_24h_change 소수점 셋째 자리에서 반올림해서 주시면 감사하겠습니다.
그리고 "last_updated_at"도 유저 입장에서 확인할 수 있으면 유용할 듯 한데 넘겨받는 "1675221294"와 같은 데이터를 어떻게 변경시켜야 사용할 수 있는지 알고 계신가요?
const date = new Date(1675221294 * 1000);
console.log(date)
이런식으로하면 아래처럼 출력되서 이걸 가공해서 사용하면 될것 같습니다.
2023-02-01T03:14:54.000Z
근데 서버에서는 블록체인과의 호환성이나 시간대 문제때문에 16759999 형식의 unix timestamp를 그대로 전달해드릴거고 클라이언트에서 가공해서 사용하셨으면 좋겠습니다.
네 알겠습니다!
코인게코 api에 장애생긴것 같은데 다른분들도 이러신가요? https://status.coingecko.com/
네 지금 에러난것 같습니다. 저도 안되네요🥲
{
"bitcoin": {
"usd": 23161,
"usd_24h_change": 1.268,
"last_updated_at": 1675229081
},
"ethereum": {
"usd": 1585.15,
"usd_24h_change": 0.815,
"last_updated_at": 1675229069
},
"dogecoin": {
"usd": 0.092715,
"usd_24h_change": 0.518,
"last_updated_at": 1675229114
}
}
대상 코인이 몇개 안되서 이런 형식으로 한번에 응답을 주게 설정했습니다. 조금 더 수정하고 api 서버를 다시 올리겠습니다.
이 데이터는 설민님이 언급한 메모리 DB인(성능이 빠름) redis에 20초 주기로 setInterval
로 갱신하고,
GET 요청이 있으면 서버는 redis에 저장된 데이터를 받아 옵니다.
따라서 그때그때의 스냅샷만을 저장하므로, DB에서 시간대별로 갱신되는 모든 정보를 가지고 있지는 않습니다.
https://nodeauction.42msnsnsfoav6.ap-northeast-2.cs.amazonlightsail.com/dev/prices
위의 uri로 GET 요청하시면 됩니다.
감사합니다 혹시 bitcoin 가격도 소수점 둘째자리까지 표현해주실 수 있을까요?
가능합니다. 바로 수정할게요
수정 완료되었습니다. 다만 도지코인 가격도 소수점이 2자리로 픽스되는 문제점이 생기는데 괜찮을까요? 아니면 3자리나 4자리로 변경할까요?
동헌님 방금 알게된 사실인데 고얼리 네트워크에서 체인링크를 사용하여 가져올 수 있는 가격리스트가 위와 같습니다. BTC/USD ETH/USD 는 존재하는데 DOGE가 없네요.
Market Price 컴포넌트에서 위와 같이 Database 와 ChainLink가격의 짝을 맞춰서 보여줄 예정입니다. 때문에 Database에서 도지코인 가격을 들고오는 것을 포기하고 도지코인 대신 체인링크 가격을 들고와야 겠습니다.
혹시 도지코인 대신 체인링크 데이터를 받을 수 있는지 여쭤보고싶습니다. bitcoin, ethereum, chainlink 모두 소수점 둘째자리까지 표현해주시면 됩니다.
번거롭게 해드려 죄송합니다.
알겠습니다.
그러니까 dev/prices/chainlink
요런 api가 필요하신거네요
해당 데이터는 고얼리 chainlink에서 가지고 오는거고
이건 컨트랙트 콜을 해야되서 시간이 좀 걸리겠네요.
이렇게 개선해보겠습니다.
맞습니다.
coingecko에서 가져오는 가격 데이터의 api 엔드포인트 dev/prices/coingecko
chainlink에서 가져오는 가격 데이터의 api 엔드포인트 dev/prices/chainlink
위와 같이 보내주시면 편하겠습니다.
coingecko가격 중에 dogecoin 대신 chainlink가격을 들고와 주실 수 있을까요?
그리고 chainlink가격 api에서 각 자산 가격의 소수점이 하나씩 뒤로 밀린것 같습니다😭 원래 '23924.54' 이 가격일텐데 이렇게 표현되네요 '2390.89'
저도 확인해서 방금 수정 커밋 머지했습니다. 곧 있으면 자동으로 반영될거에요
1e8로 나눴어야 했는데 10e8로 나눠서 한자리가 줄어들었었네요
데이터 모두 정상적으로 잘 들어와서 이슈 닫습니다. 감사합니다.
Coingecko API Docs 위 API Docs 중 '/coins/{id}/market_chart' tab에서 제공하는 market history data를 들고옵니다
엔드포인트에 들어가는 파라미터는 총 4개입니다
API Docs 또는 URL로 간단하게 테스트 가능합니다.